java - 使用 gradle 在 Jar 中包含 pom.xml
问题描述
我试图在我用 gradle 创建pom.xml
的中包含一个生成的。jar
到目前为止,在我的父项目中,我有
subprojects {
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
from(components.java)
}
}
}
}
在子项目中我有:
tasks.build.dependsOn install
sourceSets {
main {
resources {
srcDirs = [ "src/main/resources", "build/poms" ]
}
}
}
这将生成./build/poms/pom-default.xml
,但不会将其添加到 JAR。
在较早的阶段build
创建依赖项而不是创建循环依赖项(我不知道这是否是问题所在)。
另外,我希望以 name (not )pom.xml
出现在里面,所以这可能不是正确的方法。META-INF
pom.xml
pom-default.xml
不知怎的,我在想它不可能像看起来那么复杂?
解决方案
您应该能够通过将以下内容添加到您的subprojects
闭包中来将 POM 包含在您的 JAR 中:
jar {
into("META-INF/maven/${project.group}/${project.name}") {
from generatePomFileForMavenPublication
rename { it.replace('pom-default.xml', 'pom.xml') }
}
}
如果你已经有一个jar
闭包,你可以在那里添加它。这会自动创建对generatePomFileForMavenPublication任务的任务依赖,以便在创建 JAR 时 POM 文件就在那里。
为此,您的问题中的sourceSets
部分不是必需的。
(旁注:完全没有必要这样做,因为 Maven 发布过程无论如何都会将 POM 作为单独的工件发布。)
推荐阅读
- centos7 - Centos 7 535 5.7.8 错误:身份验证失败:一般失败
- python - 合并字符串列上的两个数据框 - 复合字符串列
- ios - iOS react-native CameraRoll 加载太慢。
- javascript - 使用 Mongoose 设置 redis 时理解 JS 代码
- python - 逐行打印 SSH 输出,而不是一次打印所有内容
- java - 物体运动模糊
- javascript - 使用 dataURL 制作可下载的文件
- jquery - Django ajax 搜索以 404 状态响应
- java - 到达 onmessage websocket 事件 HtmlUnit
- angular - 有没有办法修复 Angular CLI 生成的文件以停止在 WebStorm 中出现红色