如何使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定义中的所有内容中,您应该真正提供groupIdartifactId并且version,其他类似的licenses对象并不是那么重要。

您还可以在此示例中查看具有某些依赖项的项目定义,然后尝试运行它以查看产生的结果。

添加了一些新关键字,并且不推荐使用某些技术。请检查

以上是 如何使gradle在项目的根目录为Maven用户生成有效的pom.xml文件? 的全部内容, 来源链接: utcz.com/qa/413932.html

回到顶部