假设我有2个项目:utils-project
,main-project
。当我main-project
build.gradle
从我的Maven存储库中使用依赖项时,它工作正常:
dependencies {
compile 'my.group:utils-project:some-version'
}
当我从maven下载jar并向其中添加jar文件时build.gradle
,由于缺少utils-project
传递依赖项而失败:
dependencies {
compile files('/path/to/jar/file/utils-project.some-version.jar')
}
使用本地jar编译主项目时,它有何不同?如何达到相同的效果?
区别在于项目对象模型(POM),它的存在与否。POM文件pom.xml
包含特定模块的依赖关系,通常与项目工件一起部署到Maven存储库。
当您说时compile files()
,Gradle只能访问该工件。由于缺少POM,因此不存在依赖项信息,并且构建可能会失败。相反,当声明从适当的存储库中解析出依赖关系时,Gradle在下载实际工件及其依赖关系和可传递依赖关系之前会获取POM。
您可以通过以下方式使用本地罐子获得相同的效果
将所有依赖项和传递性依赖项(等等)下载到本地文件夹并相应地引用它们
compile files('/path/to/jar/file/*.jar')
使用平面目录存储库
jar
文件中。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句