示例:通过 Settings.xml 注入 POM 属性
动力
你有一个插件参数,它应该包含一个用户特定的值。这个参数有一个通用的格式(相对目录结构),但是取决于知道安装的应用程序的目录什么的。
插件配置
<project> [...] <build> <plugins> <plugin> <groupId>org.myproject.plugins</groupId> <artifactId>my-cool-maven-plugin</artifactId> <version>1.0</version> <configuration> <deploymentDirectory>${application-home}/deploy</deploymentDirectory> </configuration> </plugin> </plugins> </build>
settings.xml
<settings> [...] <profiles> <profile> <id>inject-application-home</id> <properties> <application-home>/path/to/application</application-home> </properties> </profile> </profiles> <activeProfiles> <activeProfile>inject-application-home</activeProfile> </activeProfiles> </settings>
解释
当 Maven 加载项目的 POM 时,它将从文件的activeProfiles
部分中提取激活的配置settings.xml
文件,并注入配置文件中声明的属性。当 POM 被插值时,该application-home
属性已经被注入,因此将允许解析插件的参数值。