我遇到了“Gradle dependencyManagement”中描述的问题。我发现“无法初始化POM pom-default.xml:无法验证项目的POM”是因为我的目录结构是:
project assembly mbean-common webapps/e2am
所以,我有一个这样的settings.gradle文件:
rootProject.name ='e2am-parent' 包括“mbean-common”,“webapps / e2am”,“assembly”
默认情况下,当我执行“gradle clean install”时,gradle生成的pom-default.xml会创建一个artifactdd“webapps / e2am”:
<groupId>com.e2open.platform</groupId>
<artifactId>webapps/e2am</artifactId>
<version>9.0-SNAPSHOT</version>
并且显然不允许使用'/'(因为如果我将其删除并执行mvn help:对文件有效pom,当'/'出现时会晃动,当我删除'/'时会成功)< / p>
如何告诉gradle不要使用'webapps / e2am'作为artifactId,即如何覆盖默认的artifactId名称?我用谷歌搜索“gradle override artifactId”,但我似乎找不到合适的食谱...
我正在使用java插件和maven插件,因此gradle'知道'应该做什么“干净安装”,此时我不上传到存档,所以我发现与上传相关的解决方案存档似乎无关紧要。
奇怪的是,在maven pom文件中我可以指定groupId,ArtifactID和version,但在build.gradle中我无法控制artifactId名称,只能控制组和版本。
答案 0 :(得分:5)
http://www.gradle.org/docs/current/userguide/maven_plugin.html上有关Maven POM生成(52.6.4)的部分建议您应该能够通过将project.archivesBaseName
设置为所需的值来解决问题,因为工件ID默认为该值。