如何使用gradle创建可重用源的Jar-Library?

时间:2016-08-15 12:56:33

标签: java gradle

我正在开发Project-A,并且我认识到,外包某些部件会使得因为这些东西可以重复使用。我现在正考虑使用gradle创建一个新项目(Project-B),将所有这些可重用的源放在那里,然后再将它们作为依赖项包含在Project-A中。

我对gradle-build-files有非常基本的了解,所以我的问题是,build.gradle文件中的基本步骤是什么来实现这个?

1 个答案:

答案 0 :(得分:1)

我认为您最好的选择是将Project-B作为库发布到本地maven存储库(它只是文件系统中的目录)。当然,如果需要,您也可以发布到公共存储库。

假设您在/path/to/repo创建了这样的本地存储库,您可以执行以下操作。

对于Project-B

gradle.properties中定义一些变量:

pName=your-project-name
pGroup=your-group-name
pVersion=1.0.0

settings.gradle中,设置项目名称:

rootProject.name = pName

build.gradle中,应用maven插件:

apply plugin: 'maven'

从其他文件中设置这些变量:

group = pGroup
version = pVersion

另外,定义上传任务:

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: file://localhost/path/to/repo)
        }
    }
}

然后,您可以使用

将项目上传到存储库
gradle clean uploadArchives

对于Project-A

将您的本地存储库添加到maven存储库列表中:

repositories {
    maven {
        url /path/to/repo
    }
    mavenCentral()
}

然后在Project-B上添加一个依赖项:

dependencies {
    compile 'your-group-name:your-project-name:1.0.0'
}

就是这样,Project-A应该在运行gradle buildgradle eclipse

等任务时自动提取Project-B的jar文件

(可选)发布来源

如果您希望Project-B的源包含在maven存储库中,以便IDE可以显示库的源代码,请将其添加到build.gradle

task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

artifacts {
    archives sourcesJar
}