我正在组织我的两个Java项目。两者都使用Git进行版本控制。为了构建它们,我正在从调用javac
的简单shell脚本迁移到Gradle。项目C依赖于项目L.项目C build.gradle
如何从项目L中找到它所需要的东西?我想避免检查我的计算机本地的版本控制路径。我觉得我必须错过一个比其中一个更好的解决方案:
build.gradle
源路径中,这是一条本地路径。对此有什么好的解决方案?
答案 0 :(得分:1)
在项目C下使用Git将项目L设置为子模块。然后让Project C将项目L视为库/预编译库。这里需要注意的是确保永远不要修改子模块中的代码!如果您需要更改它,请确保在其单独的项目中进行更改。否则可以而且会让你头疼。
答案 1 :(得分:1)
Gradle可以使用您当地的maven回购。它甚至使用与Maven相同的机制来确定.m2
文件夹的位置。
如果在settings.xml中定义了本地存储库位置,则将使用此位置。
USER_HOME/.m2
中的settings.xml优先于M2_HOME/conf
中的settings.xml。如果没有可用的settings.xml,Gradle将使用默认位置USER_HOME/.m2/repository
。
只要将ProjectL工件发布到本地maven,就可以在不使用本地路径的情况下从ProjectC中的repo中使用它们。只需确保在C之前构建和发布L.有关发布到maven repos的更多详细信息see here。
本地maven repo可以在gradle中定义为:
repositories {
mavenLocal()
}