从Eclipse启动Gradle构建

csl*_*csl 47 eclipse gradle

我们正在考虑将我们的Ant构建转换为Gradle.

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

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

其他人如何在Eclipse中使用Gradle?

Kei*_*h P 26

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

可以在此处找到安装说明:http: //static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html

到目前为止,我的经验非常积极.对于直接的Java项目,它可以很好地工作.我在使用Gradle插件时通过Eclipse生成正确的war文件存在一些问题,但gradle本身就做得非常好.我对gradle和插件相对较新,所以它可能是我缺少的东西.

  • 添加截图. (2认同)

Bla*_*ine 24

临时工作更适合那些有命令行恐惧症的人.

从Eclipse中,使用下拉菜单运行/外部工具/外部工具配置...

在左侧导航器面板中选择"Program",然后单击工具栏中的"New launch configuration"按钮(工具栏中的第一个按钮).

选择主选项卡后,请填写以下字段:

  1. 名称:(在选项卡上方)为"Gradle"(或任何您想要用于启动器的名称).
  2. 位置:使用"浏览文件系统..."按钮导航到"gradle.bat"或"gradlew.bat"运行.
  3. 工作目录:使用"浏览工作区..."按钮选择具有所需项目的"build.gradle"文件的目录.
  4. 参数:输入"--gui"

添加到参数:如果使用"build.gradle"以外的Gradle构建文件,则切换"-b filename.gradle".

在此之后,您的开发人员可以使用"运行/外部工具"或工具栏按钮启动Gradle Gui.他们可以在每次使用后关闭它,或者(为了避免启动延迟),在不使用时将其最小化.


c_m*_*ker 15

简短的回答是我们不会从Eclipse调用gradle脚本.

我相信这个网站概述了目前这项工作的位置,现在似乎并不多.

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

  • 嗨,我是您提到的链接中列出的实验性Gradle插件的作者.你是对的,我已经停止在这个eclipse插件上投入时间,因为springource sts的人开始研究插件.sts 2.7.2有很好的gradle支持.我的插件的功能在sts插件中完全可用.但是sts gradle插件的功能远远超出了.实际上我正在与他们联手以获得更好的编辑器支持gradle文件.此编辑器支持基于groovy-eclipse插件的新DSLD功能. (8认同)
  • 想要使用Eclipse的gradle有很多理由.我认为正确的问题是你为什么要去一个单独的命令窗口来调用Gradle.使用我当前的Ant设置,我可以使用热键自动运行我的最后一个Ant Target,非常方便 (6认同)
  • 同意,该插件似乎停滞不前.我们的开发团队习惯于从Eclipse Ant Viewer调用各种Ant目标(清理,构建,部署,单元测试等),我们的目标是从概念上无缝过渡到Gradle.随着Windows机器上的开发,没有太多的命令提示可以说... (2认同)

FkY*_*kko 10

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

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

这由Gradle团队支持和开发,并将在未来不断改进.它还可以处理旧版本(具有基于Gradle版本可用性的功能).

编辑2017-03-01:在Buildship 2.0发布之后,集成甚至更好,我推荐它(除非你已经使用IntelliJ,然后你已经设置).还有一些功能缺失,比如直接调试JavaExec任务的能力以及运行预编译/预先导入任务的能力,但这些功能都在他们的Github问题列表中.


Joe*_*oeG 8

我知道这是一个老问题,但我仍然认为Eclipse不能为你运行gradle构建.Spring Gradle插件是一个很好的开始,如果您使用它,您可以定义外部工具生成器以在需要时运行gradle.如果您有许多项目并且所有项目都是使用gradle构建的,您甚至可以让gradle为您的eclipse项目添加功能.虽然可以清理它,但您可以在gradle构建文件中添加以下内容:

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')
                            }
                        }
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是存储在目录层次结构顶部的文件的内容:./.externalToolBuilders/Gradle_Builder.launch.如此处所定义的,这只会在"干净"之后运行[Gradle比本机Java Builder更耗时,所以继续使用它来进行自动构建].注意:下面的文件内容也假定您使用的是"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>
Run Code Online (Sandbox Code Playgroud)


bha*_*yas 5

您可以从eclipse创建一个自定义启动器,它将调用您的Gradle构建.