我意识到有很多关于Gradle设置的帖子。这就是说,我研究了很多,没有找到我正在寻找的东西,或者我使用了不正确的术语来做到这一点。我正在使用Gradle版本3.3。Gradle依赖于另一个项目失败的模块
所以我有多个Gradle项目,每个项目都是单独维护的。没有主Gradle项目。每个项目都有自己的模块,构建和设置文件。其结构如下:
Projects
A
a1
build.gradle
a2
build.gradle
build.gradle
settings.gradle
B
b1
build.gradle
b2
build.gradle
build.gradle
settings.gradle
我试图做的是让B依赖于A的模块。我们假设B中的一个模块依赖于a1。在B的设置,我已经做了以下内容:
rootProject.name = 'B'
rootProject.setProjectDir(new File(".")
include 'a1'
project(':a1').setProjectDir(new File(settingsDir.getParentFile(), "/A/a1"))
我存储的版本号的方式是通过在内线封盖每个项目的文件的build.gradle。然后我通过这个项目访问它们。下面是B的build文件的外观:
ext {
freemarkerVersion = '2.3.19'
}
dependencies {
compile project(':a1')
compile group: 'org.freemarker', name: 'freemarker', version: rootProject.properties.get('freemarkerVersion')
}
我所看到的是B能够解决其依赖关系,并试图编译项目A1,但它是使用B的版本号,而不是的。我通过在具有不同版本号的两个项目中添加通用依赖项来验证这一点。使用B的版本显示依赖关系。我也在B中更改了版本号,并进一步证实了这一点。因此,如果我可以在他们自己的build.gradle文件中获得任何与项目相关的版本的帮助,那就太棒了!
编辑:更新后,找出以前的问题是从相对路径不解决。