我有一个 java 项目,用 gradle 管理,通过存储库解析远程依赖项。
implementation 'org.company:very-big-dependency:2.7.1'
我想克隆那个依赖项,在本地项目上工作,并实现一个新功能。
有没有办法让 gradle 像从存储库一样从本地获取依赖项?
我试过将该项目包含在我的
settings.gradle
中include ':app', ":very-big-dependency"
project(':very-big-dependency').projectDir = new File(settingsDir, '../../very-big-dependency')
并定义了对我的
build.gradle
的依赖dependencies {
...
implementation project(':very-big-dependency')
但是当我运行时
build
gradle 提示它找不到依赖项的子项目A problem occurred evaluating script.
> Project with path ':sub-project' could not be found in project
由于项目在通过存储库解析时正确构建,这告诉我 gradle 在构建本地项目时的行为方式不同。
在本地克隆上调用自己的构建脚本时,依赖项的项目正确构建,测试通过,一切正常。
在我的项目中还有什么我需要告诉 gradle 的吗?我需要对本地依赖做任何其他事情吗?每次我想测试这个时,我都需要构建一个 jar 吗?
备注:
gradle init
创建的:sub-project
,只为得到:A problem occurred configuring project ':very-big-dependency'.
> Could not get unknown property 'compileJava' for project ':sub-project' of type org.gradle.api.Project.
flatDir
进入 repositories
但这无济于事。 最佳答案
你可以试试 includeBuild
+ dependencySubstitution
在 settings.gradle
.
// include local clone of the library
includeBuild('../../very-big-dependency') {
dependencySubstitution {
// substitute remote dependency with local module
substitute module('org.company:very-big-dependency') with project(':very-big-dependency')
}
}
见 manual了解更多信息。
关于java - 用本地克隆替换 gradle 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55757586/