如何使gradle在项目的根目录为Maven用户生成有效的pom.xml文件?
虽然只有两天了,但是我肯定会在所有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文件的完整链接:这里。
回答:
您可以使用gradle
maven插件。这会将pom
约定方法添加
到项目中,您可以在任务中使用该方法来生成pom.xml
文件,例如
task writeNewPom { doLast {
pom {
project {
groupId 'org.example'
artifactId 'test'
version '1.0.0'
inceptionYear '2008'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.writeTo("pom.xml")
}
}
然后调用gradle
createPom在项目根目录中生成pom.xml。在pom定义中的所有内容中,您应该真正提供groupId
,artifactId
并且version
,其他类似的licenses
对象并不是那么重要。
您还可以在此示例中查看具有某些依赖项的项目定义,然后尝试运行它以查看产生的结果。
添加了一些新关键字,并且不推荐使用某些技术。请检查
以上是 如何使gradle在项目的根目录为Maven用户生成有效的pom.xml文件? 的全部内容, 来源链接: utcz.com/qa/413932.html