如何使用 gradle 正确添加对另一个项目的依赖?
How to add a dependency to another project properly using gradle?
你好,我是 gradle 的新手,这让我有点困惑。我应该如何在 gradle 配置中添加依赖项以访问 projectA1 中的 B1.java?项目 B 是 gradle 个项目,而项目 A 只是一个包含另一个 gradle 个项目的文件夹。
这是我的结构:
- 工作区:
- 项目A
- 项目A1
- ...
- 这里我想访问B1.java
- build.gradle
- 项目A2
- ...
- build.gradle
- 项目B
- 项目B1
- B1.java
- ...
- build.gradle
- 项目B2
- ...
- build.gradle
- build.gradle
我试图阅读 gradle 文档,但我并不清楚。任何帮助表示赞赏。谢谢!
除非项目 A1 和 B1 位于同一个源存储库中并且一起签出和签入,否则您确实应该将项目 B1 作为外部依赖项。
在项目 A1 中 build.gradle:
dependencies{
compile 'projectB1group:projectB1module:projectB1version'
}
当然,要实现这一点,您必须首先将 B1 二进制文件发布到可从项目 A1 访问的存储库。这可以是外部 nexus/artifactory 类型的 maven 存储库,但也可以是本地 maven .m2 缓存,甚至是普通的旧文件系统。对于 Maven 发布,请参阅 maven
或“maven-publish”插件。
如果两个项目都在同一个源代码库中,您应该将 ProjectA 和 ProjectB 组织为根 "container" 项目下的子项目。根项目不需要有自己的源代码。
在 gradle here 中阅读有关组织多项目构建的信息。
如果根项目有一个包含项目 B1 的包含行的 settings.gradle
,您可以像这样引用根项目下的任何项目:
project(':B1')
所以,要将 B1 添加为 A1 的依赖项,在 A1 的 build.gradle:
compile project('B1')
你应该有这样的结构:
ProjectA
|--projectA1
|----build.gradle
|--projectA2
|----build.gradle
|--settings.gradle
|--build.gradle
ProjectB
|--projectB1
|----build.gradle
|--projectB2
|----build.gradle
|--settings.gradle
|--build.gradle
您可以 link 项目中的外部模块。
1) 在您的项目中 projectA/settings.gradle
include ':projectA1',':projectA2',':projectB1'
project(':projectB1').projectDir = new File("/workspace/projectB/projectB1")
2) 在projectA1
模块build.gradle
中添加依赖
dependencies {
compile project(':projectB1')
}
- 在根路径中编辑setting.gradle并包含您的子项目,这样子项目就可以相互看到并相互依赖了。
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
-
-
你好,我是 gradle 的新手,这让我有点困惑。我应该如何在 gradle 配置中添加依赖项以访问 projectA1 中的 B1.java?项目 B 是 gradle 个项目,而项目 A 只是一个包含另一个 gradle 个项目的文件夹。
这是我的结构:
- 工作区:
- 项目A
- 项目A1
- ...
- 这里我想访问B1.java
- build.gradle
- 项目A2
- ...
- build.gradle
- 项目A1
- 项目B
- 项目B1
- B1.java
- ...
- build.gradle
- 项目B2
- ...
- build.gradle
- build.gradle
- 项目B1
- 项目A
我试图阅读 gradle 文档,但我并不清楚。任何帮助表示赞赏。谢谢!
除非项目 A1 和 B1 位于同一个源存储库中并且一起签出和签入,否则您确实应该将项目 B1 作为外部依赖项。
在项目 A1 中 build.gradle:
dependencies{
compile 'projectB1group:projectB1module:projectB1version'
}
当然,要实现这一点,您必须首先将 B1 二进制文件发布到可从项目 A1 访问的存储库。这可以是外部 nexus/artifactory 类型的 maven 存储库,但也可以是本地 maven .m2 缓存,甚至是普通的旧文件系统。对于 Maven 发布,请参阅 maven
或“maven-publish”插件。
如果两个项目都在同一个源代码库中,您应该将 ProjectA 和 ProjectB 组织为根 "container" 项目下的子项目。根项目不需要有自己的源代码。
在 gradle here 中阅读有关组织多项目构建的信息。
如果根项目有一个包含项目 B1 的包含行的 settings.gradle
,您可以像这样引用根项目下的任何项目:
project(':B1')
所以,要将 B1 添加为 A1 的依赖项,在 A1 的 build.gradle:
compile project('B1')
你应该有这样的结构:
ProjectA
|--projectA1
|----build.gradle
|--projectA2
|----build.gradle
|--settings.gradle
|--build.gradle
ProjectB
|--projectB1
|----build.gradle
|--projectB2
|----build.gradle
|--settings.gradle
|--build.gradle
您可以 link 项目中的外部模块。
1) 在您的项目中 projectA/settings.gradle
include ':projectA1',':projectA2',':projectB1'
project(':projectB1').projectDir = new File("/workspace/projectB/projectB1")
2) 在projectA1
模块build.gradle
中添加依赖
dependencies {
compile project(':projectB1')
}
- 在根路径中编辑setting.gradle并包含您的子项目,这样子项目就可以相互看到并相互依赖了。
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