是不是maven-deploy-plugin知道我将其声明为构建插件的pom?

时间:2017-07-25 20:15:57

标签: java maven maven-plugin

我有一个maven项目。在pom中我声明了组ID,工件ID,版本。

我将maven-deploy-plugin声明为构建插件,目标是deploy:deploy-file。

然后我以同样的目标从日食中发射了maven,wuth -Durl宣称为jvm arg。

Maven构建失败,说我没有提供groupid,artifactid,包,文件未定义。

为什么不从pom中获取这些值?

必须有一种方法告诉插件使用pom值,对吧?因为maven人当然相信DIE-DRY - 重复是邪恶的,不要重复自己?否则,我可以创建一个与其pom相矛盾的人工制品分布?

  1. 为什么,插件不知道我希望部署项目,包括源代码而不仅仅是一个jar或pom?

  2. 为什么,插件不知道它应该只是看pom artifactid声明来获取groupid和artifactid。

  3. 咆哮:

    • 如果缺少这些功能,虽然我强烈希望他们不会错过 - 为什么,插件开发人员不觉得这些是重要的功能?

1 个答案:

答案 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方式。