我的gradle项目中有几个子项目:
Project
Common
Consumer1
Consumer2
.....
ConsumerN
我的第一个 - 主要目标 - 是将Common
项目中的类包含到每个ConsumerN
项目的jar中。所以我可以在Common
项目中独立开发和测试共享部分(DB逻辑,一些工具),然后其他项目将获得这些类(已经过测试)并将它们包含在它们的罐子里。
第二个目标是让IntelliJ Idea理解这种依赖并正确使用它。
请您提出最概念和最正确的方式"在gradle中这样做。
答案 0 :(得分:0)
假设您有以下项目结构:
首先你需要设置一个多模块项目 - 它在settings.gradle
中完成(这是一个普通的gradle脚本),其内容如下:
include 'm1', 'm2', 'm3', 'common'
每个项目设置都在专用的build.gradle
文件中完成,但您询问的设置可以全局完成 - 在根build.gradle
中。以下是其内容:
subprojects {
apply plugin: 'java'
}
subprojects.findAll { it.name != 'common' }.each {
configure(it) {
dependencies {
project(':common')
}
}
}
问题是从mN
模块产生了什么工件。如果这些是jar文件,您需要使用fatjar或shadow插件。如果有web应用程序war插件是你需要的。
进一步reading。
IntelliJ IDEA应该在使用gradle包装器导入项目时处理这些依赖项。