使用Gradle的IntelliJ理念:最佳实践

时间:2015-09-17 18:14:21

标签: java intellij-idea gradle

我正在使用IntelliJ Idea 14.1.4开发Java应用程序。 如果它只是Java应用程序,我就会知道如何在Idea中构建项目: 一个Java项目,包含几个模块:一个用于应用程序的每个部分(JAR)。最多4-5个JAR。

模块之间的依赖关系也是已知的:协议不依赖于任何内容,其他一切依赖于基础设施,依此类推。 接下来,我想使用Gradle脚本来管理项目。所以我的问题是在Idea中构建代码的最佳实践是什么?

我应该为每个JAR创建一个Gradle项目和Gradle模块吗?

我应该为每个JAR创建一个Java项目(或者可能是空项目)和Gradle模块吗?

我应该创建一个Gradle项目,每个模块都是Gradle的子项目吗?也许最好有一个空项目和几个Gradle模块,因为并非所有的JAR都是紧密耦合的?

由于我之前从未使用过Gradle,因此在结合Gradle和Idea时,我将非常感谢最佳实践的指导。

谢谢,

1 个答案:

答案 0 :(得分:2)

只要有可能,我会将代码保存在一个源存储库中。在根上,我会有一个“空”项目没有输出任何东西。您的所有jar项目都是子项目(以Gradle术语表示)。您可以通过根项目中的settings.xml文件包含它们。

每个子项目都有自己的build.gradle文件。在这些文件中,您可以轻松定义子项目之间的依赖关系,例如:

dependencies {
    compile project(':subProject3')
}

为方便起见,我经常创建一个特殊的export任务,将所有人工制品放在根级别的一个export/文件夹中,这样就不需要经过所有这些子文件夹来获取你的东西。

task export(type: Copy) {
    from project(':subProject1').jar
    from project(':subProject2').jar
    from project(':subProject3').war
    into 'export/'
}

IntelliJ Ultimate 14可以正常使用这种方法。您只需点击Make即可编译所有内容。如果您愿意,您可能还希望将项目设置配置为在制作期间运行gradle jargradle export