我现在正在项目 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 build
或 gradle 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/