Gradleã§SVNãã§ãã¯ã¢ã¦ãããã ãã®ãµã³ãã«(å®å ¨ç)
前回のエントリã§kimukou_26ããããåãã½ã¼ã¹ãè¦ããã¨ã³ã¡ã³ãé ããã®ã§æ¸ãã¦ã¿ã¾ããã
ååã®ã³ã¼ãä¾ã ã¨ããXmlParser().parseText('svnlist.log')ãã§è½ã¡ã¾ãã...orz ããã¯ãã¡ã¤ã«åãæ¸¡ãã¦ããã®ã§ããXmlParser().parse('svnlist.log')ããæ£ããã§ããããã¾ããã§ããm(__)m
ã¾ããant.svnã使ãããã«ã¯Antã®taskdefã¨JARã®é
ç½®ãå®éã¯å¿
è¦ãªã®ã§ãããæ¸ãã¦ããã¾ããã
åãbuild.gradleã¯ä»¥ä¸ã®ããã«ãªãã¾ããLiferayã®ã½ã¼ã¹ããã§ãã¯ã¢ã¦ãããã³ã¼ãã«ãªã£ã¦ããã®ã§é©å½ã«å¤ãã¦ãã ããããã ã以ä¸ã®æ³¨æç¹ãããã¾ãã
- svn listã¯antã®svnã¿ã¹ã¯ã§ã¯ãµãã¼ãããã¦ãã¾ããããªã®ã§ãnativeã®svnã³ãã³ããantã®execã¿ã¹ã¯ã§å¼ã³åºãã¦ãã¾ããã¨ãããã¨ã¯ãsvnã³ãã³ããå®è¡ã§ãããããsvnã¯ã©ã¤ã¢ã³ããå¥éã¤ã³ã¹ãã¼ã«ããã¦ããå¿ è¦ãããã¾ãã
- 䏿¹ããã§ãã¯ã¢ã¦ãæã¯antã®svnã¿ã¹ã¯ã使ã£ã¦ãã¾ãããªã®ã§ãsvnantãå¿ è¦ã§ããlibãã©ã«ã以ä¸ã«svnantã®JARãé ç½®ãããã¨ãåæã¨ãã¦ãã¾ãã(å¥ã«ãããnativeã®svn coãexecã¿ã¹ã¯ã§ãå¼ãã§ãããã§ãã)
SVN_USER = 'guest' SVN_PASS = '' SVN_USER_OPT = "--username ${SVN_USER}" SVN_PASS_OPT = SVN_PASS.length() > 0 ? "--password ${SVN_PASS}" : '' workDir = 'tmp' moduleName = 'portal' trunkBaseUrl = "http://svn.liferay.com/repos/public/${moduleName}/trunk" tagBaseUrl = "http://svn.liferay.com/repos/public/${moduleName}/tags" //Task Def for svnant (http://subclipse.tigris.org/svnant.html) ant.taskdef(resource: 'org/tigris/subversion/svnant/svnantlib.xml') { classpath { fileset(dir: 'lib', includes: '*.jar') } } task checkout << { //svn listã§ã¿ã°ä¸è¦§ãåå¾(æ®å¿µãªããantã¿ã¹ã¯ã§ã¯æªå®è£ ãªã®ã§execã¿ã¹ã¯ã§) ant.exec(executable: "svn", dir: ".", output: 'svnlist.log') { arg(line: "list --xml ${SVN_USER_OPT} ${SVN_PASS_OPT} ${tagBaseUrl}") } //svn listã®çµæããã¼ã¹ root = new XmlParser().parse('svnlist.log') entries = root.list.entry.collect{ [it.name.text(), it.commit.date.text()] } //æ¥ä»ã§ã½ã¼ã tagNames = entries.sort{ x, y -> y[1] <=> x[1] }.collect{ it[0] } //ææ°ã®ã¿ã°URL latestTagName = tagNames[0] //ã¿ã°ããã§ãã¯ã¢ã¦ã ant.svn(username: SVN_USER, password: SVN_PASS) { checkout(url: "${tagBaseUrl}/${latestTagName}", revision: 'HEAD', destPath: "${workDir}/${latestTagName}/${moduleName}") } //trunkããã§ãã¯ã¢ã¦ã ant.svn(username: SVN_USER, password: SVN_PASS) { checkout(url: "${trunkBaseUrl}", revision: 'HEAD', destPath: "${workDir}/latest/${moduleName}") } }
ä¸è¨ãã¡ã¤ã«ãç½®ããã¨ããã§ãä¸è¨ã³ãã³ãã§å®è¡ãã¾ãã
gradle checkout