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

Isn't maven-deploy-plugin aware of the pom in which I declared it as a build plugin?

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

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

然后我以相同的目标从 eclipse 启动了 maven,wuth -Durl 声明为 jvm arg。

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

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

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

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

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

咆哮:

目标 deploy:deploy-file 用于部署不是由 maven 构建的工件,这就是您必须指定参数的原因。

要部署由 maven(一个普通的 maven 项目)构建的工件,您应该只使用 deploy 目标并在 pom.xml 中指定目标存储库 distributionManagement 元素,像这样:

<distributionManagement>
    <repository>
        <uniqueVersion>false</uniqueVersion>
        <id>corp1</id>
        <name>Corporate Repository</name>
        <url>file:///home/myfolder/.m2</url>
        <layout>default</layout>
    </repository>
</distributionManagement>

然后你可以在你的项目根目录中调用mvn deploy

这将是将项目部署到另一个 Maven 存储库的默认 Maven 方式。