【问题】
gxpt 父项目中的 pom 文件,每个人 checkout 下来,都需要手动修改 java.home 和 jboss.home 的路径。如图:
这样改起来就太麻烦了。所以现在采用一种统一的办法来设定。以后 checkout 出来的,可以不用再修改这两个地址。
【做法】
这里不再填写具体路径,而是获取环境变量的值,只要在环境变量中设置了这两个值,就不用再在 pom 中修改了。如图所示:
【资料拓展】
http://blog.csdn.net/sin90lzc/article/details/7552033
Maven 内置了三大特性:属性、 Profile 和资源过滤来支持构建的灵活性。
事实上有六种类型的 Maven 属性:
内置属性:主要有两个常用内置属性 ——${basedir} 表示项目根目录,即包含 pom.xml 文件的目录 ;${version} 表示项目版本。
POM 属性: pom 中对应元素的值。例如 ${project.artifactId} 对应了 <project><artifactId> 元素的值。具体有哪些 POM 属性可以用,可以查看本页末的附件—— 超级 POM
自定义属性:在 pom 中 <properties> 元素下自定义的 Maven 属性。例如
1. <project>
2. <properties>
3. <my.prop> hello </my.prop>
4. </properties>
5. </project>
Settings 属性:与 POM 属性同理。如 ${settings.localRepository} 指向用户本地仓库的地址。
Java 系统属性:所有 Java 系统属性都可以使用 Maven 属性引用,例如 ${user.home} 指向了用户目录。可以通过命令行 mvn help:system 查看所有的 Java系统属性
环境变量属性:所有环境变量都可以使用以 env. 开头的 Maven 属性引用。例如 ${env.JAVA_HOME} 指代了 JAVA_HOME 环境变量的值。也可以通过命令行 mvn help:system 查看所有环境变量。
默认情况下, Maven 属性只有在 POM 中才会被解析。资源过滤就是指让 Maven 属性在资源文件 (src/main/resources 、 src/test/resources) 中也能被解析。
在 POM 中添加下面的配置便可以开启资源过滤
1. <build>
2. <resources>
3. <resource>
4. <directory> ${project.basedir}/src/main/resources </directory>
5. <filtering> true </filtering>
6. </resource>
7. </resources>
8. <testResources>
9.