maven命令 mvn-p参数用法、作用及参数详解
maven 命令:
mvn clean package -D maven.test.skip=true -P product
1. 命令很简单是:清 class 文件,打包构建,跳过测试,注意最后一个 -P product,-P maven 会激活项目下的 pom.xml 配置的 <profiles> 标签下 id 为 product
<profiles>
<profile>
<id>product</id>
<properties>
<env>product</env>
</properties>
</profile>
</profiles>
2. 使用占位符上面配置定义的 ${env} 进行资源过滤
<bulid><!-- 指定资源目录 配置是否启用资源过滤(就是是否启用占位符替换)-->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>logback.xml</include>
</includes>
</resource>
</rwsources>
<!-- 变量来源 -->
<filters>
<filter>src/main/resources/log-profile-${env}.properties</filter>
</filters>
</build>
3. 通过 maven 的 setting 设置,激活 profile(第二种全局的激活方式,可以忽略,如果都使用 <env>,这个的值会被覆盖)
<activeProfiles>
<activeProfile>product</activeProfile>
</activeProfiles>
总结:
1. -P 参数 配合资源过滤 Filter,最终使用了 src/main/resources/log-profile-product.properties 文件
2. 这个配置文件就是为可以使用占位符的 logback.xml 文件提供对应 的值
3. 激活 profile 和 spring 的 profile 有点志同道合,maven 的这个配置激活还可以用到很多方面,例如开发环境用快照仓库(版本),生产用发布仓库