我在这个Java JNLP项目中使用了一个pom.xml,我们有三个配置文件(dev,pre,pro),除此之外,还有这两个模式用于运行应用程序。一个是这样的:
<properties>
<!-- When this is set to webservice, we need no more properties -->
<service.mode.package>webservice</service.mode.package>
</properties>
当service.mode.package更改其值时,我们更改为:
<properties>
<!-- When this is set to localservice, we need the properties following this line -->
<service.mode.package>localservice</service.mode.package>
<!-- DESIRED PROPERTIES FOR LOCALSERVICE -->
<jdbcDriver.propName>someName</jdbcDriver.propName>
<jdbcDriver.groupId>com.some.url</jdbcDriver.groupId>
<jdbcDriver.version>6.9</jdbcDriver.version>
<dataSource.id>${project.artifactId}-ds</dataSource.id>
<dataSource.simpleJndiName>jdbc/${dataSource.id}</dataSource.simpleJndiName>
<dataSource.user>userName</dataSource.user>
<dataSource.password>someW31rdPassw0rd</dataSource.password>
<testDataSource.password>${dataSource.password}</testDataSource.password>
<testDataSource.user>${dataSource.user}</testDataSource.user>
</properties>
现在,每当我们更改service.mode.package值时,我们都会评论并取消注释这一系列属性,所以我的问题是,如果Maven 3.2.1可以定义一组属性取决于一个特定财产的价值。
这应该可以在一个地方更改它,因为任何配置文件都可以更改其service.mode.package值。最好的方法是在一个配置文件中更改此值,而不必担心所有属性,具体取决于它。
编辑:我已经读过,我可以同时激活两个配置文件,并且在现有配置文件之后尝试此操作:
<profile>
<id>localservice</id>
<activation>
<property>
<name>service.mode.package</name>
<value>localservice</value>
</property>
</activation>
<properties>
<!-- DESIRED PROPERTIES FOR LOCALSERVICE -->
<jdbcDriver.propName>someName</jdbcDriver.propName>
<jdbcDriver.groupId>com.some.url</jdbcDriver.groupId>
<jdbcDriver.version>6.9</jdbcDriver.version>
<dataSource.id>${project.artifactId}-ds</dataSource.id>
<dataSource.simpleJndiName>jdbc/${dataSource.id}</dataSource.simpleJndiName>
<dataSource.user>userName</dataSource.user>
<dataSource.password>someW31rdPassw0rd</dataSource.password>
<testDataSource.password>${dataSource.password}</testDataSource.password>
<testDataSource.user>${dataSource.user}</testDataSource.user>
</properties>
</profile>
它似乎只有在我放入标签时激活!webservice并且它始终激活。这是如何运作的?它是否比较字符串值?
如果有人知道该做什么或在哪里可以找到解决方案,我将不胜感激。提前致谢