免责声明:我对Gradle and Dependency Management非常陌生。我尝试阅读文档但却无法获取大量信息。我也找不到任何有用的东西来回答我的问题,很抱歉,如果之前已经回答过这个问题,我试着去搜索......
所以我的情况如下:我有一个Java项目,它应该给我一个使用JSON文件使用程序配置的标准化方法。这个项目依赖于Gson。到目前为止一切顺利,我只是将compile 'com.google.code.gson:gson:2.6.2'
添加到项目依赖项中,并且一切都很好,库在Idea中显示为外部库,我可以使用它和东西。
现在我想在其他项目中使用该项目来使用配置资料。我不能为我的生活弄清楚如何使用Gradle将项目或库jar添加到其他项目。
我尝试过将库jar复制到项目的libs文件夹以使用它并将compile files('./libs/myLibrary-0.0.1.jar')
添加到依赖项列表中,或者通过Idea中的项目结构项将jar添加为库。这些方法都没有奏效,而且我的智慧结束了。
任何帮助都将不胜感激。
答案 0 :(得分:2)
如果您或您的公司有中央二进制存储库,例如artifactory。然后你应该设置在那里发布你的jar。
但是既然你还没有提到中央存储库,我会假设你没有中央存储库,并且只是试图让你的依赖在一台机器上工作。在这种情况下,我建议做的是:
将maven-publish插件添加到依赖项目中:
apply plugin: 'maven-publish'
还要确保定义项目的group
,version
和name
变量(请参阅here)。你以后会需要它们。然后添加一个发布定义,告诉maven-publish发布所有类:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
使用这些设置,您现在应该可以运行publishToMavenLocal
任务。做吧。如果成功,依赖jar现在应该在您的本地maven存储库(〜/ .m2 / repository)
现在,在需要依赖项的项目中添加mavenLocal
作为存储库:
repositories {
mavenLocal()
}
(您可能希望在此处添加其他存储库,例如mavenCentral())
还可以像gson依赖项一样添加jar的组,名称和版本:
compile 'yourgrou:yourname:yourversion
。
Gradle现在应该能够从本地maven仓库获取依赖项。
答案 1 :(得分:1)
你有几个选择。首先,简单的是构建您的基础项目,并在您当地的maven存储库中使用并使用它。要使您的项目可用是您当地的maven仓库,请使用maven
插件。在build.gradle
文件中,添加以下内容。
apply plugin: 'maven'
现在使用gradle clean build install
将jar发布到您的本地仓库。请记住,install
任务实际上是将您的jar放入您的本地。然后转到您的其他依赖于此项目的项目,并告诉它通过将mavenLocal
添加到您的本地maven仓库来查看库。
repositories {
mavenCentral()
mavenLocal()
}
另一种选择是,如果您在公司中使用集中式仓库,则可以发布基础jar并在其他项目中使用它。查看documentation。