我遇到了“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和版本。
http://www.gradle.org/docs/current/userguide/maven_plugin.html 中有关 Maven POM 生成 (52.6.4) 的部分建议,您应该能够通过将 project.archivesBaseName
设置为所需值来解决此问题,因为工件 ID 默认为该值。