使用Gradle将我自己的Java库包含在项目中

时间:2016-06-22 13:27:11

标签: java gradle

免责声明:我对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添加为库。这些方法都没有奏效,而且我的智慧结束了。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

如果您或您的公司有中央二进制存储库,例如artifactory。然后你应该设置在那里发布你的jar。

但是既然你还没有提到中央存储库,我会假设你没有中央存储库,并且只是试图让你的依赖在一台机器上工作。在这种情况下,我建议做的是:

将maven-publish插件添加到依赖项目中:

apply plugin: 'maven-publish'

还要确保定义项目的groupversionname变量(请参阅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

相关问题