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

时间:2020-05-01 17:27:30

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

我正在使用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'丢失或无效

是的,发生这种情况是因为该部分中没有<url>标记,因此它是必填参数。

但是为什么<distributionManagement>被完全忽略?我还为 myrepo 存储库配置了distributionManagement,因此在其中配置了url。

要使其在快照发行版的发行版管理中起作用,我需要做什么?

1 个答案:

答案 0 :(得分:0)

在回答this之后,我找到了以下解决方案:

  1. 我已经完全删除了maven-deploy-plugin
  2. 我已在<attachartifact>中添加了maven-antrun-plugin ant任务

通过这种方式,如here中所述,由Ant运行插件产生的文件已正确部署到Nexus:

附加工件任务

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

相关问题