在单个pom中部署多个文件

时间:2016-11-07 11:42:29

标签: maven deployment maven-deploy-plugin

我有一个pom,它可以获得拉链,解包并部署内部的5个工件(jar + pom)。

它看起来像:

queryForList("select * from tb_user where name=? and sex=?", List<MapperClass> , List<User>);

所以我有5个不同的工件执行5次。

它适用于第一个工件但随后失败,因为它尝试再次上传:

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
                <executions>
                    <execution>
                        <id>default-deploy</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>deploy-api-jar</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>deploy-file</goal>
                        </goals>
                        <configuration>
                            <file>target/xxx.jar</file>
                            <pomFile>target/xxx/pom.xml</pomFile>
                            <sources>target/xxx-sources.jar</sources>
                            <repositoryId>${nexus-repository-id}</repositoryId>
                            <url>http://${nexus.deploy.server}/${nexus-repository-path}</url>
                        </configuration>
                    </execution>

由于[INFO] Uploading: http://www.zzz.com:8081/nexus/content/repositories/mobile-r/xxx/server/deployall/8.1.17/deployall-8.1.17-dependencies.dot 8.1.17已部署,因此400 BadRequest失败。

为什么尝试在每个工件之间上传depedencies.dot?我可以禁用它吗?

1 个答案:

答案 0 :(得分:1)

编辑:回答错过了这一点

它失败了,因为Maven和你的nexus只允许给定一组坐标的一个工件。

因此,如果要将它们全部部署到相同的坐标,则需要为它们提供不同的分类。

您要做的是对构建脚本的高度不规则使用。 Maven假设来自单个POM的所有工件具有相同的坐标(但是不同的分类器)。如果需要,可以将工件附加到项目中,并使用生命周期中的常规deploy:deploy任务上载它们。您可以使用build-helper-maven-plugin

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>1.12</version>
  <executions>
    <execution>
      <id>attach-artifacts</id>
      <phase>package</phase>
      <goals>
        <goal>attach-artifact</goal>
      </goals>
      <configuration>
        <artifacts>
          <artifact>
            <file>file1</file>
            <type>extension of your file</type>
            <classifier>x</classifier>
          </artifact>
          <artifact>
            <file>file2</file>
            <type>extension of your file</type>
            <classifier>y</classifier>
          </artifact>
          ...
          </artifacts>
        </configuration>
      </execution>
    </executions>
  </plugin>

但是,由于您要上传5个析取工件,POM不是您想要的,而是使用bash脚本代替上传(多次调用mvn deploy:deploy-file)。