Gradle嵌套项目配置
Gradle nested project configuration
我对为嵌套项目设置构建脚本有些困惑
我在这里写了一个简单的测试 repo https://github.com/814k31/TestGradle
本质上,我正在为一个模块编写一个包装器,并且需要将该包装器包含在一个更大的项目中,但是当它在一个更大的项目中使用时,我无法将模块导入到包装器中
依赖链
app imports OneDeep
OneDeep imports TwoDeep
目录结构:
app
oneDeep
twoDeep
build.gradle
build.gradle
build.gradle
settings.gradle
测试仓库中的 master 分支是按照我期望的方式编写的
还有另一个分支,我调整了 settings.gradle 来工作,虽然我觉得我不应该那样做...
关于如何让 oneDeep(包装器)导入 twoDeep(模块)有什么建议吗?
提前致谢。
你没有描述你得到的错误,但是如果我们从你的 repo 中的 master 分支执行你的示例,我们会得到以下错误:
> Project with path ':twoDeep' could not be found in project ':oneDeep'.
这个问题来自于您从项目 'oneDeep' 脚本中引用项目 'twoDeep' 的方式:
dependencies {
compile project(':twoDeep') // <== this won't work: there is no project with absolute path ":twoDeep"
// compile project('twoDeep') // <== use relative path to reference sub-project 'twoDeep' from project 'oneDeep'
// compile project(':oneDeep:twoDeep') // <= using absolute path will work as well
}
因此,在从项目 'oneDeep' 引用子项目 'twoDeep' 时,您必须使用相对路径 (=> 'twoDeep' ) 或绝对路径 (=> ':oneDeep:twoDeep')。
Project project(String path) :
Locates a project by path. If the path is relative, it is interpreted relative to this project.
另见 Project and task paths(但没有明确说明 "relative" 路径的预期语法是什么)
我对为嵌套项目设置构建脚本有些困惑
我在这里写了一个简单的测试 repo https://github.com/814k31/TestGradle
本质上,我正在为一个模块编写一个包装器,并且需要将该包装器包含在一个更大的项目中,但是当它在一个更大的项目中使用时,我无法将模块导入到包装器中
依赖链
app imports OneDeep
OneDeep imports TwoDeep
目录结构:
app
oneDeep
twoDeep
build.gradle
build.gradle
build.gradle
settings.gradle
测试仓库中的 master 分支是按照我期望的方式编写的
还有另一个分支,我调整了 settings.gradle 来工作,虽然我觉得我不应该那样做...
关于如何让 oneDeep(包装器)导入 twoDeep(模块)有什么建议吗?
提前致谢。
你没有描述你得到的错误,但是如果我们从你的 repo 中的 master 分支执行你的示例,我们会得到以下错误:
> Project with path ':twoDeep' could not be found in project ':oneDeep'.
这个问题来自于您从项目 'oneDeep' 脚本中引用项目 'twoDeep' 的方式:
dependencies {
compile project(':twoDeep') // <== this won't work: there is no project with absolute path ":twoDeep"
// compile project('twoDeep') // <== use relative path to reference sub-project 'twoDeep' from project 'oneDeep'
// compile project(':oneDeep:twoDeep') // <= using absolute path will work as well
}
因此,在从项目 'oneDeep' 引用子项目 'twoDeep' 时,您必须使用相对路径 (=> 'twoDeep' ) 或绝对路径 (=> ':oneDeep:twoDeep')。
Project project(String path) : Locates a project by path. If the path is relative, it is interpreted relative to this project.
另见 Project and task paths(但没有明确说明 "relative" 路径的预期语法是什么)