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

使用Gradle在项目中包含我自己的Java库,java,gradle,Java,Gradle,免责声明:我对Gradle和依赖关系管理非常陌生。我试着阅读文档,但就是看不懂大量的信息。我也找不到任何有用的东西来回答我的问题,所以很抱歉,如果以前有人回答过这个问题,我尝试搜索 所以我的情况如下:我有一个Java项目,它应该给我一种使用JSON文件使用程序配置的标准化方法。此项目依赖于Gson。到目前为止还不错,我只是简单地添加了compile'com.google.code.gson:gson:2.6.2'到项目依赖项,一切都很好,这个库在Idea中显示为外部库,我可以使用它和其他东西 现

免责声明:我对Gradle和依赖关系管理非常陌生。我试着阅读文档,但就是看不懂大量的信息。我也找不到任何有用的东西来回答我的问题,所以很抱歉,如果以前有人回答过这个问题,我尝试搜索

所以我的情况如下:我有一个Java项目,它应该给我一种使用JSON文件使用程序配置的标准化方法。此项目依赖于Gson。到目前为止还不错,我只是简单地添加了
compile'com.google.code.gson:gson:2.6.2'
到项目依赖项,一切都很好,这个库在Idea中显示为外部库,我可以使用它和其他东西

现在我想在其他项目中使用该项目来利用配置。我一辈子都不知道如何使用Gradle将项目或库jar添加到其他项目中

我尝试过将库jar复制到项目的libs文件夹中以在其中使用它,并将
编译文件('./libs/myLibrary-0.0.1.jar')
添加到依赖项列表中,或者通过Idea中的项目结构将jar添加为库。这些方法都不管用,我也束手无策


任何帮助都将不胜感激。

您有两种选择。第一个简单的方法是构建基础项目,并在本地maven存储库中使用它。要使您的项目在本地maven repo中可用,请使用
maven
plugin。在
build.gradle
文件中,添加以下内容

apply plugin: 'maven'
现在使用
gradle clean build install
将jar发布到本地repo。请记住,
install
任务实际上是将您的jar放入本地的任务。然后转到依赖于此任务的其他项目,告诉它通过将
mavenLocal
添加到存储库来查看您的本地maven repo

repositories {
    mavenCentral()
    mavenLocal()
}

另一种选择是,如果您在公司中使用集中式回购,则可以发布基本jar并在其他项目中使用它。如果您或您的公司有一个中央二进制存储库,例如。然后,您应该设置在那里发布您的jar

但既然您没有提到中央存储库,我就假设您没有中央存储库,只是想让您的依赖关系在一台机器上工作。在这种情况下,我建议这样做:

将maven发布插件添加到依赖项项目:

apply plugin: 'maven-publish'
还要确保定义项目的
版本
名称
变量(请参阅)。你以后会需要它们的。然后添加一个发布定义,该定义将告诉maven publish发布所有类:

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}
使用这些设置,您现在应该能够运行
publishToAvenLocal
任务。去做吧。如果成功,依赖项jar现在应该位于本地maven存储库(~/.m2/repository)中

现在,在需要依赖项的项目中添加
mavenLocal
作为存储库:

repositories {
    mavenLocal()
}
(您可能希望在此处添加其他存储库,例如mavenCentral())

还可以添加jar的组、名称和版本,就像您的gson依赖项一样:
编译'yourgrou:yourname:yourversion
。 Gradle现在应该能够从本地maven repo获取依赖项