2

我遇到了“ 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 名称,只能控制组和版本。

4

1 回答 1

5

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

于 2013-09-17T15:35:41.843 回答