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

标签 java gradle

我现在正在项目 A 上进行开发,我认识到,外包一些部件是有意义的,因为这些东西是可重用的。我现在正在考虑使用 gradle 创建一个新项目(Project-B),将所有这些可重用源放入其中,然后再次将它们作为依赖项包含在 Project-A 中。

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

最佳答案

我认为最好的选择是将 Project-B 作为库发布到本地 Maven 存储库(这只是文件系统中的一个目录)。当然,如果需要的话,您也可以在某个时候发布到公共(public)存储库。

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

对于项目 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

对于项目 A

将本地存储库添加到 Maven 存储库列表中:

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

然后添加对您的 Project-B 的依赖项:

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

就是这样,当运行诸如 gradle buildgradle eclipse 之类的任务时,Project-A 应该自动拉取 Project-B 的 jar 文件

可选择发布来源

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

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

artifacts {
    archives sourcesJar
}

关于java - 如何使用 gradle 创建可重用源的 Jar 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955532/

相关文章:

java - 如何找出不在离线模式下导致 gradle 变慢的原因

kotlin - 如何在 Gradle Kotlin DSL 中重用库声明?

android - 无法解决Gradle中的依赖关系

java - 将 Android 项目导入 Eclipse 报错

java - getColumnName 无法正常工作

java - 字符串数组的 ArrayList

java - 即使设置正确,Gradle 也会发现错误的 JAVA_HOME

android - Checkstyle 自定义检查与 gradle (android studio)

java - 使用Java读取文件的最后n个字节

java - 使用 JDBC 的 UTF-8 查询