繁体   English   中英

Maven配置文件和工件版本

[英]Maven profile and artifact version

假设我们有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清洁包装-P Produce-some-product

首先构建会产生以下工件:

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

第二构建产生以下工件:

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

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

命名基于父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>

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

谢谢

不要使用分类器来更改名称

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM