代码之家  ›  专栏  ›  技术社区  ›  Stefan S.

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

  •  0
  • Stefan S.  · 技术社区  · 6 年前

    我设法以一种方式构建了一个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 ,这让我检查了 maven-source-plugin 在有效的POM中。但是,没有重复:

        <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 回复  |  直到 6 年前
        1
  •  0
  •   Stefan S.    6 年前

    灵感来自 that question 我试图禁用发布配置文件,但现在它不知怎么工作了。我无法对这种行为作出任何解释。

    删除发布配置文件的代码段:

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