我有一个maven项目。在pom中我声明了组ID,工件ID,版本。
我将maven-deploy-plugin声明为构建插件,目标是deploy:deploy-file。
然后我以同样的目标从日食中发射了maven,wuth -Durl宣称为jvm arg。
Maven构建失败,说我没有提供groupid,artifactid,包,文件未定义。
为什么不从pom中获取这些值?
必须有一种方法告诉插件使用pom值,对吧?因为maven人当然相信DIE-DRY - 重复是邪恶的,不要重复自己?否则,我可以创建一个与其pom相矛盾的人工制品分布?
为什么,插件不知道我希望部署项目,包括源代码而不仅仅是一个jar或pom?
为什么,插件不知道它应该只是看pom artifactid声明来获取groupid和artifactid。
咆哮:
答案 0 :(得分:3)
目标deploy
用于部署非maven构建的工件,这就是您必须指定参数的原因。
要部署由maven(普通maven项目)构建的工件,您应该只使用distributionManagement
目标,并使用<distributionManagement>
<repository>
<uniqueVersion>false</uniqueVersion>
<id>corp1</id>
<name>Corporate Repository</name>
<url>file:///home/myfolder/.m2</url>
<layout>default</layout>
</repository>
</distributionManagement>
元素在pom.xml中指定目标存储库,像这样:
mvn deploy
然后,您只需在项目根目录中调用base64_decoder(..)
即可。
这将是将项目部署到另一个maven存储库的默认maven方式。