第十四章 灵活的构建
它们的默认值是在超级POM中定义的。
?
?
<resources> <resource> <directory>${project.basedir}/src/main/resources</directory> <filtering>true</filtering> </resource></resources> ?
mvn clean install –Pdev
表示激活ID为dev的profile。我们可以在id为dev的profile中定义dev环境下的数据库连接等配置的Maven属性,从而用上述命令构建一个dev环境下的构件。
<settings> … <activeProfiles> <activeProfile>dev-x</activeProfile> <activeProfile>dev-y</activeProfile> </activeProfiles> …</settings> ?
<profiles> <profile> <activation> <property> <name>test</name> <value>x</value> </property> </activation> </profile></profiles>?
? 4) 操作系统环境激活:
<profiles> <profile> <activation> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> </activation> </profile></profiles>
?这里family的值包括Windows、UNIX和Mac等。name、arch、version可以通过查看环境中的系统属性os.name、os.arch和os.version获得。
?
<profiles> <profile> <activation> <file> <missing>x.properties</missing> <exists>y.properties</exists> </file> </activation> </profile></profiles> ?
<profiles> <profile> <activation> <activeByDefault>true</activeByDefault> </activation> </profile></profiles>?
但如果POM中有任何一个profile通过以上其他任意一种方式被激活了,所有的默认激活配置都会失效。
?
激活的多个profile中的冲突属性如何解决?
在POM中定义的profile可以修改以下项目属性:
<profile> <repositories/> <pluginRepositories/> <distributionManagement/> <dependencies/> <dependencyManagement/> <modules/> <properties/> <reporting/> <build> <plugins/> <defaultGoal/> <resources/> <testResources/> <finalName/> </build></profile>?
但在其他地方定义的profile由于无法保证它们能随着特定的pom.xml一起被分发,因此只允许修改以下属性:
?
<profile> <repositories/> <pluginRepositories/> <properties/></profile>
?
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1-beta-1</version> <configuration> <webResources> <resource> <filtering>true</filtering> <directory>src/main/webapp</directory> <includes> <include>**/*.css</include> <include>**/*.js</include> </includes> </resource> </webResources> </configuration></plugin> ?
<configuration> <groups>group-name</groups></configuration>?
?
???