maven - 如何使 Maven 部署插件只上传特定文件?

标签 maven deployment maven-deploy-plugin

我要add two zips to an already published version在 Nexus。
从本质上讲,它们是应用程序的压缩演示和同一应用程序的扩展版本,也是压缩的。

使用 Deploy 插件,我在我的 pom 中定义了两个执行,每个文件一个,并将它们绑定(bind)到部署阶段。这是演示的一个:

<execution>
   <id>deploy-essential</id>
      <phase>deploy</phase>
      <goals>
         <goal>deploy-file</goal>
      </goals>
      <configuration>
         <file>${project.build.directory}/${project.artifactId}-${project.version}-demo.zip</file>
         <groupId>${project.groupId}</groupId>
         <artifactId>myproject</artifactId>
         <version>${project.version}</version>
         <classifier>demo</classifier>
         <repositoryId>nexus</repositoryId>
         <url>${targetrepository}</url>
         <generatePom>false</generatePom>
      </configuration>
   </execution>

我希望 Maven 在执行此操作时上传文件并将元数据更新到给定的 G/A/V 坐标。
但是,它会将给定文件和包含完整版本的姊妹文件上传到给定坐标,然后将它们再次上传到原始坐标。

然后它继续为第二次执行再次执行所有这些操作。这是我的日志的摘录:
[INFO] --- maven-deploy-plugin:2.7:deploy-file (deploy-demo) @ bundle ---
Downloading: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml
2 KB   

Downloaded: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml (2 KB at 4.8 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/myproject-1.2.6-20121130.102624-5-demo.zip
...           
Uploaded: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/myproject-1.2.6-20121130.102624-5-demo.zip (13032 KB at 23105.2 KB/sec)
Downloading: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml
533 B      

Downloaded: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml (533 B at 34.7 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml
2 KB    

Uploaded: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml (2 KB at 89.4 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml
533 B   

Uploaded: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml (533 B at 32.5 KB/sec)
Downloading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml
861 B   

Downloaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml (861 B at 3.8 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-full.zip
...           
Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-full.zip (13065 KB at 18531.7 KB/sec)
Downloading: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml
410 B      

Downloaded: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml (410 B at 8.5 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml
861 B   

Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml (861 B at 27.1 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml
410 B   

Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml (410 B at 5.1 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-demo.zip
...           
Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-demo.zip (13032 KB at 13631.1 KB/sec)
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml
861 B      

Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml (861 B at 56.1 KB/sec)

这对于 SNAPSHOT 来说不是什么大事,但它完全阻止了发布,因为 Nexus 被配置为拒绝重新部署。

我不认为这种行为是有意的,而且我确信我遗漏了一些东西。
我能以某种方式让 Maven 只上传我实际配置的文件吗?

最佳答案

因为您没有禁用默认部署机制,所以它仍在执行中。你需要这样的东西:

        <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <executions>
                <!-- disable standard deploy -->
                <execution>
                    <id>default-deploy</id>
                    <phase>none</phase>
                </execution>
                <execution>
                    <id>deployEssential</id>
                    <phase>deploy</phase>
                    ...
                </execution>
            </executions>
        </plugin>

关于maven - 如何使 Maven 部署插件只上传特定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13645362/

相关文章:

spring - Maven tomcat :run plugin and datasource configuration via JNDI

ios - 在 Windows 上使用 Apple 的传输器

java - maven deploy-file 的 generatePom 什么时候应该设置为 false?

java - altDeploymentRepository 和 altReleaseDeploymentRepository 之间的区别

部署到 nexus 时 maven-metadata.xml 未更新

java - 找不到 Tomcat Mapper 类

maven - 为什么 Maven 在使用 scp 部署时不使用我的私钥?

maven - slf4j-log4j12 未由 maven 打包,范围为 "runtime"

java - 在 glassfish 中部署 axis2 服务时出错

java - 是否有更新使用 EJB 的应用程序的首选方法?