Skip to content

Instantly share code, notes, and snippets.

@xconnecting
Last active April 5, 2017 03:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save xconnecting/5898824 to your computer and use it in GitHub Desktop.
Save xconnecting/5898824 to your computer and use it in GitHub Desktop.
[Gradle] Install Eclipse and Plugins
project.ext.tempDir = 'tmp'
project.ext.targetEclipseDir = 'd:/eclipse'
ant.condition(property: "os", value: "windows") { os(family: "windows") }
ant.condition(property: "os", value: "unix" ) { os(family: "unix") }
task clean << { delete 'tmp' }
task installEclipse << {
new File(tempDir).mkdirs()
ant.get(dest:tempDir, skipexisting:true){
url(url:"http://ftp.jaist.ac.jp/pub/eclipse/technology/epp/downloads/release/juno/SR2/eclipse-rcp-juno-SR2-win32.zip")
}
ant.unzip(dest:tempDir, overwrite:"false"){
fileset(dir: project.tempDir){ include (name:'*.zip')}
}
ant.move(toDir: project.targetEclipseDir){
fileset(dir: "${tempDir}/eclipse")
}
ant.copy(file:'files/eclipse.ini', toDir: targetEclipseDir)
}
def getCommandList(String command){
def commandList = [
"${targetEclipseDir}/eclipse",
"-application",
"org.eclipse.equinox.p2.director",
"-noSplash"
]+
command.replaceAll(/,[^\\]\n/, ',').replaceAll(/[^\\]\n/, ' ').split(/\s+/) +
[
"-vmargs",
"-Dlogback.configurationFile=logback.xml"
]
if(ant.properties.os == 'windows'){
commandList = ['cmd', '/c']+ commandList
}
commandList.flatten()
}
task installPlugins(type:Exec) {
ext.command = """\
-repository http://dist.springsource.org/release/GRECLIPSE/e4.2/,^
http://dist.springsource.com/release/TOOLS/gradle^
-installIUs org.codehaus.groovy.eclipse.feature.feature.group,^
org.springsource.ide.eclipse.gradle.feature.feature.group^
-d ${targetEclipseDir}"""
commandLine getCommandList(command)
}
installPlugins.mustRunAfter installEclipse
task wrapper(type: Wrapper) { gradleVersion = '1.6' }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment