maven之三大特性属性、profile、资源过滤

内置属性

${basedir} 表示项目根目录,即pom.xml文件所在的目录
${version} 表示项目的版本

POM属性

${project.build.sourceDirectory} :项目的主源码目录,默认为 src/main/java
${project.build.testSourceDirectory} :项目的测试源码目录,默认为 src/test/java
${project.build.directory} :项目构建输出目录,默认为 target/
${project.outputDirectory} :项目主代码编译输出目录,默认为 target/classes
${project.testOutputDirector} :项目测试代码编译输出目录,默认为 target/test-classes/
${project.groupId} :项目的 groupId
${project.artifactId} :项目的artifactId
${project.version} :项目的 version ,与 ({version} 等价 `){project.build.finalName} :项目打包输出文件的名称,默认为({project.artifactId}-){project.version}`

自定义属性[properties]

 <properties>
	<key>value</key>
 </properties>

其他属性

Setting属性 读取setting.xml文件值 ${setting.localRepository}
java系统属性 读取java系统属性值${user.home}; mvn help:system查看属性
环境变量属性 读取环境变量的属性值 ${env.JAVA_HOME} ; mvn help:system 查看所有环境变量属性

profile

  • conf/setting.xml 配置全局profile
  • .m2/setting.xml 配置当前用户profile
  • pom.xml 配置项目profile
<profiles>
  	<profile>
  		<id>dev</id>
  		<properties>
  			<db.password>admin123</db.password>
  		</properties>
  	</profile>
</profiles>
<activeProfiles>
    <activeProfile>profileId</activeProfile>
</activeProfiles>

过滤

/src/main/resources/config.properties

db.password=${db.password}

<profiles>
  	<profile>
  		<id>dev</id>
  		<properties>
  			<db.password>admin123</db.password>
  		</properties>
  	</profile>
  </profiles>
  
  <build>
	<resources>
		<resource>
			<directory>${project.basedir}/src/main/resources</directory>
			<filtering>true</filtering> <!-- 过滤后才能将配置资源文件中的配置修改掉 -->
		</resource>
	</resources>
  </build>
mvn clean package -Pdev //成功替换
  • 可以定义参数配置替换所有的js、css文件

如果觉得文章对您有用,请点下推荐。您的支持将鼓励我继续创作!

原文地址:https://www.cnblogs.com/pengsn/p/13567123.html