我们正在考虑将我们的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和插件相对较新,所以它可能是我缺少的东西.
Bla*_*ine 24
临时工作更适合那些有命令行恐惧症的人.
从Eclipse中,使用下拉菜单运行/外部工具/外部工具配置...
在左侧导航器面板中选择"Program",然后单击工具栏中的"New launch configuration"按钮(工具栏中的第一个按钮).
选择主选项卡后,请填写以下字段:
添加到参数:如果使用"build.gradle"以外的Gradle构建文件,则切换"-b filename.gradle".
在此之后,您的开发人员可以使用"运行/外部工具"或工具栏按钮启动Gradle Gui.他们可以在每次使用后关闭它,或者(为了避免启动延迟),在不使用时将其最小化.
c_m*_*ker 15
简短的回答是我们不会从Eclipse调用gradle脚本.
我相信这个网站概述了目前这项工作的位置,现在似乎并不多.
我有点好奇你想从Eclipse运行什么样的任务.为什么不从命令行运行任务?
FkY*_*kko 10
这个问题的当前答案应该是,使用Gradle自己的Eclipse插件Buildship:
http://projects.eclipse.org/projects/tools.buildship
这由Gradle团队支持和开发,并将在未来不断改进.它还可以处理旧版本(具有基于Gradle版本可用性的功能).
编辑2017-03-01:在Buildship 2.0发布之后,集成甚至更好,我推荐它(除非你已经使用IntelliJ,然后你已经设置).还有一些功能缺失,比如直接调试JavaExec任务的能力以及运行预编译/预先导入任务的能力,但这些功能都在他们的Github问题列表中.
我知道这是一个老问题,但我仍然认为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)
| 归档时间: |
|
| 查看次数: |
84101 次 |
| 最近记录: |