Maven配置

333 阅读1分钟

项目中依赖的jar包在本地仓库找不到时,需要到远程仓库下载

若setting中配置了镜像,且镜像配置的规则匹配到目标仓库时,maven认为目标仓库被镜像,会去镜像仓库中下载

mirror

给id为central的仓库做镜像

*则代表所有仓库

<mirror>
  <id>mirrorId</id>
  <mirrorOf>central</mirrorOf>
  <name>Test Central</name>
  <url>http://xxx/maven-public</url>
</mirror>

profile

激活

<profiles>
    <profile>
        <!-- 该配置的唯一标识符 -->
        <!-- 通过-P参数激活 -->
        <id>tencent</id>
        <!-- 标识什么情况下激活该profile -->
        <activation>
            <!-- 是否默认激活 -->
            <activeByDefault>true</activeByDefault>
            
            <!-- 根据os激活 -->
            <os></os>
            
            <!-- 根据jdk激活 -->
            <jdk></jdk>
            
            <!-- 根据-D参数激活 -->
            <property>
                <name></name>
                <value></value>
            </property>
        </activation>
    </profile>
</profiles>

id

mvn compile -Pdevelop

<profiles>
    <profile>
        <id>develop</id>
    </profile>
    <profile>
        <id>test</id>
    </profile>
    <profile>
        <id>online</id>
    </profile>
</profiles>

os

<profiles>
    <profile>
        <!--当os为Windows XP时,该profile生效-->
        <os>
            <name>Windows XP</name>
            <family>Windows</family>
            <arch>x86</arch>
            <version>5.1.2600</version>
        </os>
    </profile>
</profiles>

jdk

<profiles>
    <profile>
        <activation>
            <!--当jdk版本为1.7时,该profile生效-->
            <jdk>1.7</jdk>
            <!--当jdk版本大于1.5,小于等于1.8时,该profile生效-->
            <jdk>(1.5,1.8]</jdk>
        </activation>
    </profile>
</profiles>

property

mvn install -Ddebug=true

<profiles>
    <profile>
        <activation>
            <!--当名称为debug的参数被定义时,且值为true时,该profile生效-->
            <property>
                <name>debug</name>
                <value>true</value>
            </property>
        </activation>
    </profile>
</profiles>

发布

测试环境发SNAPSHOT版本的,线上环境发Release版本的

mvn deploy -Ptest
mvn deploy -Ponline
<project>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>${project.version}</version>

    <profiles>
        <profile>
            <id>test</id>
            <properties>
                <project.version>1.0.0-SNAPSHOT</project.version>
            </properties>
        </profile>
        
        <profile>
            <id>online</id>
            <properties>
                <project.version>1.0.0</project.version>
            </properties>
        </profile>
    </profiles>
</project>