条件替换maven
conditional replacement maven
在使用 com.google.code.maven-replacer-plugin 编译我的工件时,我曾将 log4j.properties 文件中的日志级别从 "DEBUG" 替换为 "WARN" :
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<file>${project.build.outputDirectory}/com/myCompany/MyApp/app/log4j.properties</file>
<replacements>
<replacement>
<token>DEBUG</token>
<value>WARN</value>
</replacement>
</replacements>
</configuration>
</plugin>
我现在要做的是根据工件是 RELEASE 还是 SNAPSHOT 来替换日志级别。类似“如果 ${version} 以 RELEASE 结尾替换,否则保持 DEBUG 级别。
有办法实现吗?
是的。
maven-release-plugin
启用 release-profile
配置文件 by default。因此,您可以在该配置文件中禁用 maven-replacer-plugin
的执行。
Maven 的 introduction to profiles,以防您不熟悉配置文件的工作原理。
当然,如果您不使用 maven-release-plugin
或不喜欢此解决方案,您可以根据需要设置自定义配置文件。
在使用 com.google.code.maven-replacer-plugin 编译我的工件时,我曾将 log4j.properties 文件中的日志级别从 "DEBUG" 替换为 "WARN" :
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<file>${project.build.outputDirectory}/com/myCompany/MyApp/app/log4j.properties</file>
<replacements>
<replacement>
<token>DEBUG</token>
<value>WARN</value>
</replacement>
</replacements>
</configuration>
</plugin>
我现在要做的是根据工件是 RELEASE 还是 SNAPSHOT 来替换日志级别。类似“如果 ${version} 以 RELEASE 结尾替换,否则保持 DEBUG 级别。 有办法实现吗?
是的。
maven-release-plugin
启用 release-profile
配置文件 by default。因此,您可以在该配置文件中禁用 maven-replacer-plugin
的执行。
Maven 的 introduction to profiles,以防您不熟悉配置文件的工作原理。
当然,如果您不使用 maven-release-plugin
或不喜欢此解决方案,您可以根据需要设置自定义配置文件。