虽然现在只有两天,但我绝对对在我所有的 Java 项目中使用 gradle 感到满意,并从我所有项目的根目录中删除 pom.xml。
但是,我想保持 Maven 兼容,因为我希望 gradle 任务能够在用户需要时在项目的根目录生成合适的 pom.xml。
此刻,我唯一对 pom.xml 的引用是在 build.gradle 文件的这一部分(这是,经过很少的修改,可以在 这里 找到):
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment {
MavenDeployment deployment -> signing.signPom(deployment);
}
repository(url: sonatypeRepoURI) {
authentication(userName: sonatypeUsername,
password: sonatypePassword);
}
pom.project {
name "${name}";
packaging "bundle";
description "${description}";
url "${projectURL}";
scm {
url "${gitroscm}";
connection "${gitroscm}";
developerConnection "${gitrwscm}";
}
licenses {
license {
name "Lesser General Public License, version 3 or greater";
url "http://www.gnu.org/licenses/lgpl.html";
distribution "repo";
}
}
developers {
developer {
id "whocares";
name "whocares";
email "whocares";
}
}
}
}
}
}
我如何将 pom.project
从这个嵌套非常深的结构中提取到一个可以生成 pom.xml 的任务中(默认情况下,生成的 pom.xml 位于 build/poms/pom-default.xml
并且看起来相当好的)?
更重要的是,是否有可能从 pom.project
中提取出 uploadArchives
同时仍然能够引用它?
build.gradle 文件的完整链接: 此处。
原文由 fge 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 gradle maven 插件。这会将
pom
约定方法添加到您的项目中,您可以在任务中使用它来生成pom.xml
文件,例如然后调用
gradle createPom
在项目根目录中生成 pom.xml。 Of all the things in the pom definition, you should really providegroupId
,artifactId
andversion
, other thins likelicenses
are not that重要的。您还可以查看 此示例 以了解具有某些依赖项的项目定义,并尝试运行它以查看其生成的内容。
添加了一些新关键字,并弃用了一些技术。 请检查