gradle - 如何在 Gradle 中发布特定的工件子集
问题描述
嗨,我继承了一个非常糟糕的项目。它使用 gradle 但仍在使用 uploadArchives。它当前的工件定义是这样的
artifacts {
if (someCondition) {
{
archives archive1
}
if (someOtherCondition) {
archives archive2
}
我想切换到 ivy/maven 发布,我现在正在使用 ivy,因为我在其他 gradle 项目中对它有一点经验(最少)。
这个项目有很多问题,但我想说有一个构建可以专门调用的名为 publishArchive1 或 publishArchive2 的任务。也许我在搜索错误的术语,但我无法弄清楚。
解决方案
您正在寻找Maven 发布插件。
您可以创建单个发布,然后有条件地将工件添加到该发布中,该发布应与您在示例中提供的内容保持一致。
publishing {
publications {
maven(MavenPublication) {
// Configure other options here
// ...
if (someCondition) {
from(someTaskWithOutputs)
}
if (someCondition) {
from(someOtherTaskWithOutputs)
}
}
}
}
然后只需调用./gradlew publish
它将发布到所有已定义的存储库。有关详细信息,请参阅链接指南
推荐阅读
- jmeter - 在 csv 中保存汇总报告响应时出错
- mysql - 错误代码:1093。您不能在 FROM 子句中指定目标表“PR_1”进行更新
- python - 旋转整数数据帧时的浮点值(pandas - python)
- akka-persistence - 是否可以将事件类型名称与持久事件分离?
- java - 在java泛型方法中发送数组作为参数
- solr - solr如何对html实体进行过滤
- c++ - gtest 有比较二进制的东西吗?
- php - 用户没有正确的角色。Laravel 权限
- r - 如何在r中提取子字符串
- asp.net - asp.net Core 2 中的 RenderPartialToString 怎么做?