Gradle:如何覆盖默认工件名称,因为默认值为“/”并且使生成的pom无效

时间:2013-09-17 15:23:27

标签: gradle pom.xml

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

1 个答案:

答案 0 :(得分:5)

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