【问题标题】:Deploy JAR Twice With Maven使用 Maven 两次部署 JAR
【发布时间】:2018-02-01 08:07:47
【问题描述】:

我们有一个随着时间的推移而改进的实用程序库。现在有这个想法也将这个库部署到另一个存储库。但是,由于某些限制,我们需要在此期间更改groupId(JAR 的内容不应更改)。

当前的pom.xml 如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sjngm.common</groupId>
  <artifactId>common-lib</artifactId>
  <version>1.0.5-SNAPSHOT</version>
  <packaging>jar</packaging>

  <distributionManagement>
    <repository>
      <id>ta</id>
      <url>http://archiva.local/archiva/repository/ta/</url>
    </repository>
    <snapshotRepository>
      <id>archiva.snapshots</id>
      <url>http://archiva.local/archiva/repository/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>1.5.4.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- plenty of that -->
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <!-- ... -->
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <!-- ... -->
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <!-- ... -->
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <!-- ... -->
      </plugin>
    </plugins>
  </build>

</project>

新的groupId 可能类似于com.sjngmaway.common

我注意到relocation,但我不明白如何将它用于我的任务:

  1. 这似乎是一次性的,但我们将同时使用它。
  2. 我可以把它放在同一个pom.xml 中吗?有个人资料什么的?至少 &lt;distributionManagement&gt; 是不同的。
  3. 如果应该是另一个pom.xml,我应该在那里添加一个&lt;dependency&gt;吗?或者我可以参考或导入我当前的pom.xml吗?

或者这只是误导,我需要其他方法吗?

我该怎么做?

由于我不是 Maven 天才,如果你能从上面使用我的 sn-p 而不是仅仅用文字解释我能做什么,那就太好了 :) 谢谢! p>

【问题讨论】:

  • 为什么不改变你项目中的 groupId 呢?除此之外,为什么不让其他人访问您已经存在工件的存储库管理器?
  • @khmarbaise 情况太复杂,无法用几句话来解释。你的想法当然是最好的选择。

标签: maven deployment


【解决方案1】:

您可以将deploy:deploy-file 目标添加到您的Maven 构建http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.htmldeploy 阶段

它的目的是在标准部署之外进行额外的部署。

【讨论】:

  • 谢谢。我发现this answer 也很有帮助,因为它在评论中解释了如何让 Maven 调用该特定目标。
猜你喜欢
  • 1970-01-01
  • 2016-04-20
  • 2010-10-19
  • 2018-06-28
  • 1970-01-01
  • 2014-05-22
  • 2021-03-31
  • 2020-04-10
  • 1970-01-01
相关资源
最近更新 更多