我遇到了“ Gradle dependencyManagement ”中描述的问题。我发现“无法初始化 POM pom-default.xml:无法验证项目的 POM”是因为我的目录结构是:
项目 部件 mbean-common 网络应用程序/e2am
所以,我有一个这样的 settings.gradle 文件:
rootProject.name = 'e2am-parent' 包括“mbean-common”、“webapps/e2am”、“程序集”
当我默认执行“gradle clean install”时,gradle 生成的 pom-default.xml 会创建一个 artifactId 为“webapps/e2am”:
<groupId>com.e2open.platform</groupId>
<artifactId>webapps/e2am</artifactId>
<version>9.0-SNAPSHOT</version>
并且'/'显然是不允许的(因为如果我删除它并对文件执行 mvn help:effective-pom ,当'/'在那里时它会发出嘶嘶声,当我删除'/'时它会成功)
我如何告诉 gradle 不要为 artifactId 使用“webapps/e2am”,即如何覆盖默认的 artifactId 名称?我用谷歌搜索“gradle override artifactId”,但我似乎找不到合适的食谱......
我正在使用 java 插件和 maven 插件,所以 gradle“知道”“全新安装”应该做什么,此时我没有上传到存档,所以我发现与上传到存档相关的解决方案似乎无关的。
似乎很奇怪,在 maven pom 文件中我可以指定 groupId、ArtifactID 和版本,但在 build.gradle 中我无法控制 artifactId 名称,只能控制组和版本。