提问者:小点点

Gradle:如何覆盖默认的工件名,因为默认的工件名有一个“/”,这会使生成的pom无效


我遇到了“Gradle依赖管理”中描述的问题。我发现“无法初始化POM-default.xml:无法验证项目的POM”是因为我的目录结构是:

project
     assembly
     mbean-common
     webapps/e2am

所以,我有一个设置。gradle文件如下:

rootProject.name='e2am-父'包括"mbean-public"、"webapps/e2am"、"程序集"

当我默认执行“gradle清理安装”时,gradle生成的pom-default.xml会创建一个“webapps/e2am”的artifactId:

    <groupId>com.e2open.platform</groupId>
    <artifactId>webapps/e2am</artifactId>
    <version>9.0-SNAPSHOT</version>

和'/'显然是不允许的(因为如果我删除它并在文件上执行mvn help: valal-pom,当'/'在那里时它会嘎嘎作响,当我删除'/'时成功)

如何告诉gradle不要对artifactId使用“webapps/e2am ”,即如何覆盖默认的artifactId名称?我在谷歌上搜索了“gradle override artifactId ”,但似乎找不到正确的配方...

我正在使用java插件和maven插件,因此gradle“知道”“全新安装”应该做什么,此时我没有上传到归档文件,因此我发现的与上传到归档文件相关的解决方案似乎无关紧要。

奇怪的是,在maven pom文件中,我可以指定groupId、artifactID和版本,但在build.gradle我不能控制artifactId名称,只能控制group和版本。


共1个答案

匿名用户

http://www.gradle.org/docs/current/userguide/maven_plugin.html 中有关 Maven POM 生成 (52.6.4) 的部分建议,您应该能够通过将 project.archivesBaseName 设置为所需值来解决此问题,因为工件 ID 默认为该值。