gpt4 book ai didi

java - Maven 配置文件和 Artifact 版本

转载 作者:行者123 更新时间:2023-11-29 03:04:11 24 4
gpt4 key购买 nike

假设我们有 Maven 多模块项目“Foo”:

Foo
|-web-module-war
|-dependency-jar

moduleC 定义了两个配置文件:

    <profile>
<id>poll-some-external-service</id>
<properties>
<dependency-jar.poll.configured>true</dependency-jar.poll.configured>
</properties>
</profile>
<profile>
<id>produce-some-product</id>
<properties>
<dependency-jar.poll.configured>false</dependency-jar.poll.configured>
</properties>
</profile>

现在我们运行两个构建:

  1. mvn clean package -P poll-some-external-service
  2. mvn clean package -P 生产一些产品

首先构建产生以下 Artifact :

web-module-war-1.0.0-poll.war
dependency-jar-1.0.0-poll.war

第二次构建产生以下 Artifact :

web-module-war-1.0.0-produce.war
dependency-jar-1.0.0-produce.war

这意味着war 文件 包含基于所选配置文件 以不同方式工作的网络应用程序。

命名基于父pom.xml中的如下配置:

    <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<jarName>${project.build.finalName}${foo.build.info}</jarName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warName>${project.build.finalName}${foo.build.info}</warName>
</configuration>
</plugin>

如何将这些 Artifact 部署到 Nexus 中? -poll/-produce 部分在部署期间被剥离。这意味着我们有两个相同版本的不同应用程序,但我们只能部署其中一个

谢谢

最佳答案

使用分类器而不是更改名称

<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<classifier>poll</classifier>
</configuration>
</plugin>

您的 pom 配置文件应类似于以下示例。请注意,您还必须使用配置文件更改依赖项。

    <profile>
<id>poll</id>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<classifier>poll</classifier>
</configuration>
</plugin>
</plugins>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>dependency-jar</artifactId>
<classifier>poll</classifier>
</dependency>
</dependencies>
</build>
</profile>

关于java - Maven 配置文件和 Artifact 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com