我在Java
中有一些与项目构建相关的问题。
在尝试使用Gradle
作为构建系统查找项目的一些好例子时,我正在搜索Google Code
。
有一些我尝试检查此项目并检查了相关的build.gradle
文件:http://code.google.com/p/spock/source/browse/trunk/spock-example/build.gradle?r=1316
现在,我可以使用命令行轻松构建此项目,并且可以很好地自动解析所有依赖项。但是,自动构建还会生成IntelliJ IDEA
项目。
所以,问题。
我确信网上有很多基于Gradle
的项目。如Gradle
这些构建系统如何与IDE
集成?
例如,IntelliJ IDEA
的生成项目无法使用IDE
的内部工具进行编译,无法调试(!)
我唯一能做的就是扩展测试用例,运行它们和打包最终jar 。 这样可以吗?我并不习惯Java构建系统,但我认为它们应该与IDE
轻松集成。
如何使用Ant
/ Maven
制作相同的内容?
我可能错过了一些东西,如果有人有经验,请帮帮我:)。
谢谢。
答案 0 :(得分:3)
据我所知,Gradle的IntelliJ支持已基本完成。我已成功使用它为一个相当复杂的项目生成IntelliJ项目配置。我没有机会使用它,因为我只是在考虑从Gradle转换到Maven,但我没有注意到你似乎在描述的任何问题。也许您正在使用的构建版本使用的是较旧版本的Gradle,但尚未获得良好的IDE支持?你能举出一些不符合你期望的事情的具体例子吗?
编辑:特别针对您的问题,我做了这个,它在Windows 7上与Gradle 1.0-milestone-4,IntelliJ 10.5和JDK 1.6.0_26配合使用:
git svn clone -r HEAD http://spock.googlecode.com/svn/trunk spock
cd spock
gradle idea
然后,在IntelliJ中,文件 - >打开项目...,导航到并选择... / spock / spock.ipr作为要打开的项目。我首先运行了项目的完整版本(Build - > Make Project),并遇到了spock.util.concurrent.BlockingVariables的问题。我不得不告诉IntelliJ不要为该类生成存根。我的Groovy不是很强大,所以我不能告诉你为什么修复这个问题或者这样做的含义是什么。之后,我能够成功运行spock-spring / src / test / groovy / org / spockframework / spring / InjectionExamples.groovy。然后我在该文件的第38行(service instanceof IService1
)放置一个断点,然后我就可以调试它并在该行中断。
值得注意的是,Gradle构建不包含该项目中的所有模块。默认的Maven构建总共包含10个模块,而Gradle构建只有6个。 Gradle构建不包括spock-maven,spock-example,spock-grails-support或spock-grails。如果我不得不猜测,他们可能会分阶段过渡到Gradle,但他们还没有完全相同。
答案 1 :(得分:0)
我不清楚为什么要尝试使用Gradle,它是否提供了您需要的功能?你觉得有些功能引人注目吗?我没有使用它的经验,但如果你只是想构建一个Java项目,我将使用Eclipse IDE保证Ant。 Ant是我尝试的第一个构建程序,我不需要任何其他东西。根据我的理解,Maven也非常好,并且很好地与Eclipse集成。
答案 2 :(得分:0)
我强烈建议您查看Maven
。 Maven没有绑定任何特定的IDE,虽然我可以想象它的插件可以在你的IDE中找到,它有Eclipse
的插件支持。
Maven是有前途的构建之一,它实际上不仅仅是构建。它是持续集成构建系统的关键推动因素,即hudson + maven + continuum + ...
它具有依赖关系管理,因此您可以指定要使用的外部库,并在编译和构建期间透明地下载并链接到您的构建。
它采用了“标准”的包装实践,而且非常简洁明了。
总的来说,我最近看到了Maven开始的更多项目,项目本身也是Apache的一部分并且非常活跃。
Maven无法与Maven vs Ant
中的ant进行比较,Maven不仅仅是构建脚本,而是Ant。使用Maven通过插件可以实现许多功能(例如Maven Cargo插件,可以简化部署到应用程序服务器)。