部署两次部署或根本不部署

时间:2018-07-17 06:35:59

标签: maven

我设法以某种方式构建Maven项目,使发布部署工件成倍增加或完全消失。

由于该项目使用了我们公司的抽象父pom,因此发布相关代码有些困难,但是我会尽力的。

第一件事。父pom具有以下定义:

  <plugin>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.8.2</version>
    <configuration>
      <deployAtEnd>true</deployAtEnd>
    </configuration>
  </plugin>

在实际项目中未定义任何内容,发布将在以下行之后失败:

[INFO] [INFO] Uploaded to our_repo: http://acme.org/nexus/content/repositories/org.acme.project/1.0.0/org.acme.project-1.0.0-sources.jar (14 kB at 3.8 kB/s)
[INFO] [INFO] Uploading to our_repo: http://acme.org/nexus/content/repositories/org.acme.project/1.0.0/org.acme.project-1.0.0-sources.jar

我们的仓库不喜欢拥有两个具有相同版本的发布JAR,因此一切都会失败。这里的怪异之处在于部署还没有结束。实际上,该项目的构建失败了一半。

但是,如果我将上述插件复制到项目中,则该版本将在同一位置打印Deploying repo:org.acme.repo:1.0.0 at end,然后在末尾不进行部署。

但是我什至不确定那是问题的一部分。尽管如此,无论插件定义在哪里,我都认为这两个版本应该完全一样。

我找到了this question,这使我在有效pom中检查了maven-source-plugin。但是,那里没有重复项:

    <plugin>
      <artifactId>maven-source-plugin</artifactId>
      <version>3.0.1</version>
      <executions>
        <execution>
          <id>attach-sources</id>
          <goals>
            <goal>jar-no-fork</goal>
          </goals>
          <configuration>...</configuration>
        </execution>
      </executions>
    </plugin>

maven-assembly-plugin中也未定义任何内容,因此未添加用于部署的JAR(在this question中建议)。

使用Java 10或Maven 3.5.2可能与我们有关,尽管老实说,我在测试内容和进度上感到困惑。

如何解决此问题? (如果您想了解有关构建的更多信息,请问。 pom.xml 是在此处共享它们的一种方法。)

1 个答案:

答案 0 :(得分:0)

that question的启发,我试图禁用发布配置文件,现在它可以以某种方式工作。对于这种行为,我无法做出任何解释。

用于删除发行资料的摘录:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
                <useReleaseProfile>false</useReleaseProfile>
            </configuration>
        </plugin>