为Maven Dev和Prod设置不同的构建

时间:2018-01-09 16:53:57

标签: java maven ant

我正从蚂蚁迁移到maven。 我需要为dev和prod创建特定于环境的构建,我已经看到了许多与此相关的问题,但在我的情况下,我有一些java文件只会进入prod。我如何使用这些java文件来分隔构建。

我的项目结构看起来像

parent
project A
| src 
| pom
 project B
| src 
| pom   
project C
| src 
| pom
project D
 | src 
 | pom  
Parent-POM

仅在Prod中使用的Java文件是密码实用程序文件。

如果您有任何疑惑,请告诉我。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我同意@khmarbaise,但是脏方法可能是将库名称定义为属性,并使用2个不同的配置文件来决定使用库。

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>${my.library}</artifactId>
        <version>${slf4j.version}</version>
    </dependency>

</dependencies>
<properties>
    <slf4j.version>1.7.25</slf4j.version>
</properties>
<profiles>
    <profile>
        <id>prod</id>
        <properties>
            <my.library>slf4j-jdk14</my.library>
        </properties>
    </profile>
    <profile>
        <id>dev</id>
        <properties>
            <my.library>slf4j-log4j12</my.library>
        </properties>
    </profile>
</profiles>

mvn -P dev  dependency:tree

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ test ---
[INFO] test:test:jar:1.0-SNAPSHOT
[INFO] +- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.7.25:compile
[INFO]    \- log4j:log4j:jar:1.2.17:compile
[


mvn -P prod dependency:tree
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ test ---
[INFO] test:test:jar:1.0-SNAPSHOT
[INFO] +- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] \- org.slf4j:slf4j-jdk14:jar:1.7.25:compile
[