从Eclipse启动Gradle构build

我们正在考虑将我们的Ant构build转换为Gradle。

关于与Eclipse的集成,我们正在寻找(概念上)从IDE启动构build的等效function。 Eclipse为调用Ant目标提供了一个很好的Ant视图。

有一个用于启动Gradle构build的Eclipse插件(http://www.breskeby.com/downloads/gradle/eclipse/update/),但是这似乎要求用户跳过箍环来调用不同的目标(编辑启动configuration,等等。)。

其他人如何从Eclipse内部使用Gradle?

简单的答案是,我们不会从Eclipse中调用gradle脚本。

我相信这个网站概述了目前这项工作在哪里,现在看起来似乎不太合适。

我有点好奇,你想从Eclipse运行什么样的任务。 为什么不从命令行运行任务?

这是一个旧的post,但SpringSource STS团队发布了一个插件: http : //static.springsource.org/sts/docs/latest/reference/html/gradle/

安装说明可以在这里find: http : //static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html

到目前为止,我的经验一直非常积极。 对于直接使用的Java项目,它工作得很好。 我有一些问题通过Eclipse生成正确的战争文件,而使用Gradle插件,但gradle本身做的奇妙。 虽然我对gradle和插件相对来说比较陌生,所以可能是我缺less的东西。

对于那些有命令行恐惧症的人来说,临时性的工作变得更加适合。

从Eclipse中,使用下拉菜单运行/外部工具/外部工具configuration…

select左侧导航面板中的“程序”,然后点击工具栏中的“新build启动configuration”button(我的工具栏中的第一个button)。

select主选项卡,填写以下字段:

  1. 名称:(在标签上方)改为“Gradle”(或任何您想要的启动器名称)。
  2. 位置:使用“浏览文件系统…”button导航到您的“gradle.bat”或“gradlew.bat”运行。
  3. 工作目录:使用“浏览工作区…”button,select具有所需项目的“build.gradle”文件的目录。
  4. 参数:input“–gui”

添加到参数:如果您使用“build.gradle”以外的Gradle构build文件,则使用开关“-b filename.gradle”。

在此之后,您的开发人员可以使用运行/外部工具或工具栏button启动Gradle Gui。 他们可以做到这一点,并在每次使用后closures,或(为了避免启动滞后),最小化不使用时。

我知道这是一个老问题,但我仍然不认为有可能让Eclipse为您运行gradle构build。 Spring Gradle插件是一个很好的开始,如果你使用它,你可以定义一个外部的工具生成器来运行Gradle。 如果你有很多项目,并且都是用gradle构build的,你甚至可以为你的eclipse项目添加gradlefunction。 虽然这可以清理,你可以添加这样的东西到你的gradle构build文件:

apply plugin: 'eclipse' eclipse { project { // Store a copy of the desired Gradle_Builder.launch file in a top-level 'master' // directory. Then this code searches for it, and by copying it, // adds the launch file to the specifc project that will run gradle String launchFileNameOrig = '.externalToolBuilders/Gradle_Builder.launch' String launchFileName = launchFileNameOrig File launchFile = file(launchFileName) boolean needToCopy = false while (!launchFile.exists()) { launchFileName = '../' + launchFileName launchFile = file(launchFileName) needToCopy = true } if (needToCopy) { copy { from (launchFile) into '.externalToolBuilders' } } buildCommand 'org.eclipse.ui.externaltools.ExternalToolBuilder', LaunchConfigHandle: '<project>/'+launchFileNameOrig file { // when they made the "buildCommand" it looks like they left off 'triggers', so parse the XML until // the right place is found, then insert it. withXml { def projectNode = it.asNode() projectNode.iterator().each { subNode -> String subNodeText = '' + subNode if (subNodeText.startsWith('buildSpec')) { subNode.iterator().each { buildCmd -> String nameNode = buildCmd?.name if (nameNode.contains('ExternalToolBuilder')) { buildCmd.appendNode('triggers', 'full') } } } } } } } 

这是存储在目录层次结构顶部的文件的内容:./.externalToolBuilders/Gradle_Builder.launch。 正如这里所定义的,这只会在“干净”之后运行[Gradle比原生Java Builder在时间上更昂贵,所以继续使用它来进行自动构build]。 注意:下面的文件内容也假定你正在使用“git”和gradle包装器。 你可以在ATTR_LOCATION的值上看到这个。 根据需要调整。 这个方法的一个好处就是你可以让gradle包装器成为你想要的任何版本的gradle,然后eclipse在运行时会使用它。

 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"> <stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/> <booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${git_dir}/../gradlew"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="assemble"/> <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/> </launchConfiguration> 

这个问题的当前答案应该是,使用Gradle自己的Eclipse插件Buildship

http://projects.eclipse.org/projects/tools.buildship

这由Gradle团队支持和开发,将来会不断改进。 它也可以处理旧版本(基于Gradle版本可用性的function)。

编辑2017-03-01:Buildship 2.0发布后,集成更好,我推荐它(除非你已经使用IntelliJ,那么你已经设置)。 还有一些function缺失,如直接debuggingJavaExec任务的能力以及运行预编译/前期导入任务的能力,但是这些function都在Github问题列表中 。

你可以从eclipse创build一个自定义的启动器,它会调用你的Gradle构build。

和往常一样,你用IDEA更好。 自2009年以来一直支持http://blogs.jetbrains.com/idea/2009/08/gradle-support/

甚至更全面的支持现在可以通过EAP(免费使用!) http://blogs.jetbrains.com/idea/2011/09/keen-to-try-gradle-integration-in-intellij-idea/

您可以使用Gradle Eclipse插件(如gradle eclipse从gradle项目生成Eclipse项目。 它为生成的Eclipse项目添加了很多目标,并且是高度可定制的。

您可以使用FkYkko所述的Buildship。 但是,有一点要记住,ant任务被认为是一等公民。 这意味着你可以简单地导入一个ant构build脚本,引用它的任务就像引用gradle任务一样。 这样做可以让你简单地使用你的ant任务开箱即用,而不需要把它们转换成gradle任务。

例如,假设您在build.gradle的同一目录中有一个名为build.xml的构build脚本,而在build.xml中有一个名为buildProj的任务。 您可以导入build.xml,并从build.gradle调用build proj,如下所示:

 task antDeps { ant.importBuild 'build.xml' } task buildAll (dependsOn:['buildProj']) { // the rest of your gradle task here. } 

看到这个 ,或这个更多的信息。

还有Enide Gradle http://www.nodeclipse.org/projects/gradle
可以使用或不使用Pivotal的Gradle IDE。
在Gradle,Maven或CDT(C ++)项目中。

跑

作为单独的插件,可以使用Gradle版本和Java版本的不同configuration

这个,Gradle IDE Pack在Enide内

在安装新的Buildship插件后,我遇到了这个问题,这个插件正在逐步淘汰其他人提到的Spring Tool Suite。

使用Buildship使用任务视图的说明如下:

使用Gradle Tasks视图

成功导入Gradle项目后,项目显示在Gradle Tasks视图中。 在这里输入图像说明 通过右键单击Gradle Tasks视图中的某个Gradle任务,可以运行选定的Gradle任务。

在这里输入图像说明

默认情况下,结果显示在Gradle Executions视图中。 它也显示在控制台视图中,类似于通过命令行运行任务时所得到的输出。

资源

EGradle在2016年还有一个新项目

https://github.com/de-jcup/egradle

也不需要项目是特别的性质,只是现有的build.gradle就足够了。

用户指南在内置帮助( F1 )或预览https://rawgit.com/de-jcup/egradle/master/egradle-plugin-main/html/user_guide.html