【问题标题】:The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy-file are missing or invalid目标 org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy-file 的参数“url”丢失或无效
【发布时间】:2020-08-16 05:41:14
【问题描述】:

我正在使用maven-deploy-plugin 在构建结束时将由maven-antrun-plugin 的任务生成的工件部署到Nexus。 Ant 任务只是创建一个由 Maven 构建的组装档案的 .sh 文件。

我必须包含maven-deploy-plugin,因为否则 .sh 不会上传到 Nexus,它会被构建的生命周期完全忽略。

这是我试过的插件配置:

<plugin>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>3.0.0-M1</version>
    <configuration>
        <skip>false</skip>
    </configuration>
    <executions>
        <execution>
            <id>deploy-sh</id>
            <phase>deploy</phase>
            <goals>
                <goal>deploy-file</goal>
            </goals>
            <configuration>
                <skip>false</skip>
                <file>${project.build.directory}/${project.artifactId}-${project.version}-autoinstaller.sh</file>
                <repositoryId>myrepo</repositoryId>
                <groupId>${project.groupId}</groupId>
                <artifactId>${project.artifactId}</artifactId>
                <version>${project.version}</version>
            </configuration>
        </execution>
    </executions>
</plugin>

我使用 mvn clean deploy 目标运行 Maven 构建,但它失败并出现以下错误:

[INFO] --- maven-deploy-plugin:3.0.0-M1:deploy-file (deploy-sh) @ MyApplication ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  04:11 min
[INFO] Finished at: 2020-05-01T19:07:40+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy-file (deploy-sh) on project MyApplication: The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy-file are missing or invalid -> [Help 1]

目标 org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy-file 的参数“url”丢失或无效

是的,这是因为该部分中没有 &lt;url&gt; 标记,所以它是一个强制参数。

但是为什么&lt;distributionManagement&gt; 会被完全忽略呢?我还为 myrepo 存储库配置了一个 distributionManagement,因此在那里配置了 url。

我必须做些什么才能使其在 快照发布 的分布管理中工作?

【问题讨论】:

  • 我建议使用buildhelper-maven-plugin 并将工件附加到您的构建中要容易得多。例如通过attach-artifact?
  • @khmarbaise 我找到了&lt;attachartifact&gt;maven-antrun-plugin 的解决方案,如我在下面发布的答案中所述。顺便说一句,buildhelper-maven-pluginattach-artifact 在打包阶段工作,所以它对我的任务没有用(我在安装阶段)
  • 您可以将插件绑定到您喜欢的任何阶段......为什么不打包阶段?你能详细解释一下he Ant task simply creates a file .sh of the assembled archive built by Maven.吗?
  • 正如我所写,我需要将一个由 Ant 任务创建的文件部署到 Nexus,该文件在构建结束时执行,此时构建已经创建了所有文件。

标签: maven pom.xml nexus3 maven-deploy-plugin


【解决方案1】:

按照this的回答,我找到了以下解决方案:

  1. 我已经完全删除了maven-deploy-plugin
  2. 我在maven-antrun-plugin 中添加了&lt;attachartifact&gt; 蚂蚁任务

这样,Ant run 插件生成的文件就被正确部署到了 Nexus,如here 所述:

附加工件任务

此任务会将工件附加到当前的 Maven 项目。这可用于安装和部署由 Ant 任务生成的工件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2019-04-12
    • 2019-08-16
    • 2016-09-18
    • 2012-12-12
    相关资源
    最近更新 更多