我有两个项目(不是模块),A
和B
。项目B
取决于A
。我只能运行B
。依赖关系是通过maven repo设置的,其中本地回购是第一个要查看的。
当我需要更改依赖项A
中的某些内容时,我会一直重复这个流程:
A
A
gradlew install
B
B
有没有更好的方法可以跳过所有这些步骤?我想在我的IDE(intelliJ)中有一个'master'虚拟项目,它将包含这两个,所以我可以一次运行并更改所有内容。
答案 0 :(得分:2)
解决此问题的一种方法是创建一个主项目,在此项目的DRGCode Cost Normality
中包含您的两个项目:
settings.gradle
将项目B的include "A", "B"
更改为使用Conditional substitution:
build.gradle
这样,如果在根项目中执行configurations.all {
resolutionStrategy.dependencySubstitution.all { DependencySubstitution dependency ->
if (dependency.requested instanceof ModuleComponentSelector && dependency.requested.group == "org.example") {
def targetProject = findProject(":${dependency.requested.module}")
if (targetProject != null) {
dependency.useTarget targetProject
}
}
}
}
,gradle也会构建项目A.
在IDEA中导入此根项目也会有效。
答案 1 :(得分:2)
Gradle 3.1介绍composite builds。有了它,您可以创建新项目,这是其他项目的组合。这个新项目只包含两个文件:
rootProject.name='we'
includeBuild '../api.java'
includeBuild '../common'
includeBuild '../engine'
includeBuild '../io'
includeBuild '../io-redis'
task buildServer {
dependsOn gradle.includedBuild('engine').task(':server:build')
}
很快发布,IDEA 2016.3将支持这一点。