[英]How do I add a project as JAR as a dependency of another project? (Gradle)
[英]How to add a dependency to another project properly using gradle?
您好,我是 gradle 的新手,这对我来说有点困惑。 我应该如何在我的 gradle 配置中添加一个依赖项来访问projectA1中的B1.java ? 项目 B 是 gradle 项目,项目 A 只是一个包含另一个 gradle 项目的文件夹。
这是我的结构:
我试图阅读 gradle 文档,但我不清楚。 任何帮助表示赞赏。 谢谢!
你应该有一个这样的结构:
ProjectA
|--projectA1
|----build.gradle
|--projectA2
|----build.gradle
|--settings.gradle
|--build.gradle
ProjectB
|--projectB1
|----build.gradle
|--projectB2
|----build.gradle
|--settings.gradle
|--build.gradle
您可以在项目中链接外部模块。
1) 在你的项目projectA/settings.gradle
include ':projectA1',':projectA2',':projectB1'
project(':projectB1').projectDir = new File("/workspace/projectB/projectB1")
2)在projectA1
模块的build.gradle
中添加依赖
dependencies {
compile project(':projectB1')
}
除非项目 A1 和 B1 位于同一个源存储库中并且一起签出和签入,否则您确实应该依赖项目 B1 作为外部依赖项。
在项目 A1 build.gradle 中:
dependencies{
compile 'projectB1group:projectB1module:projectB1version'
}
当然,要使其工作,您必须首先将 B1 二进制文件发布到可从 Project A1 访问的存储库。 这可以是外部 nexus/artifactory 类型的 maven 存储库,也可以是本地 maven .m2 缓存,甚至是普通的旧文件系统。 对于 maven 发布,请参阅maven
或 'maven-publish` 插件。
如果两个项目都位于同一个源代码库中,您应该将 ProjectA 和 ProjectB 组织为根“容器”项目下的子项目。 根项目不需要有自己的源代码。
如果根项目有一个包含项目 B1 的包含行的settings.gradle
,您可以像这样引用根项目下的任何项目:
project(':B1')
因此,要将 B1 添加为 A1 的依赖项,请在 A1 的 build.gradle 中:
compile project('B1')
root
|-- build.gradle << very simple bulid.grade , no special thing.
|-- setting.gradle <<
rootProject.name = 'root'
file("${rootDir}/ProjectA").eachDirMatch(~/.*/) {
include "ProjectA:${it.name}"
}
file("${rootDir}/ProjectB").eachDirMatch(~/.*/) {
include "ProjectB:${it.name}"
}
build.gradle
root
|-- ProjectA
|-- projectA1
|-- build.gradle <<
implementation project(':ProjectB:projectB1')
参考:
你可以在 spring 项目中设置这个setting.gradle
官方文档: 声明子项目之间的依赖关系
官方文档: setting.gradle 和 demo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.