我正在迁移到Gradle作为Java项目的构建工具。 我的主项目(A)对其他项目(B和C)有依赖性。具有SCM的Gradle多项目
目前,这些项目都是在CVS单独当我想要编译AI不得不签出,做一个子目录中一个称为B中,我检查出B.同去的C.
我将迁移到B和C可以发布到的资源库管理器(nexus)。发生这种情况时,模块A可以只依赖于它可以从nexus获得的B和C.
但是,如果我不想发布B和C(用于测试目的),并且我想用B和C的最新代码构建A而不将它提交给连接,则会出现困难。
我最初的想法是为B和C构建jar并将其拉入到“lib”文件夹中,但是我确定有更好的方法。
在maven中,我可以做一个“mvn clean install”,它将在本地maven缓存中安装B和C.然后A会在那里寻找合适的罐子。
但我仍然不确定这是最好的方法。我查看了gradle子项目,但我没有完全理解它们。子模块如何在SCM中处理(我是否还需要使用git子模块?)
对于这种情况的最佳实践,我将不胜感激。 感谢
编辑:
从维亚切斯拉夫·什韦茨下面的回复是最准确的答案到目前为止,我已经找到。 还有一种方法可以用maven风格的依赖关系来切换gradle项目依赖项。这涉及到依赖替代如在https://docs.gradle.org/current/userguide/dependency_management.html#sec:project_to_module_substitution
描述这可以被缠绕在:
if(project.hasProperty("someSwitch")){
configurations.all{.....
....
}
}
此方法的使用将是:
gradle build -Psomeswitch