我使用 Maven 来管理我的项目。
我发现<properties>
标签非常有用,但这有一个问题。
当我将源代码部署到 Tomcat 时,我应该将/target/classes
其放入 Deployment Assembly 以获取转换后的资源。
示例) 我认为以上是正确的。
但我必须投入/target/classes/
以获得转换后的属性。
Spring bean 示例)
<!-- Database -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${database.classname}" />
<property name="defaultAutoCommit" value="${database.defaultAutoCommit}" />
<property name="testWhileIdle" value="${database.testWhileIdle}" />
<property name="timeBetweenEvictionRunsMillis" value="${database.timeBetweenEvictionRunsMillis}" />
<property name="url" value="${database1.url}" />
<property name="username" value="${database1.username}" />
<property name="password" value="${database1.password}" />
</bean>
如果我不放,这个纯变量只是复制到 Tomcat 的 webapp 中/target/classes/
即使它有效,这也让我发疯,因为 Eclipse 有时会说"sources are not sychronized!"
pom.xml
...
<build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<outputDirectory>${basedir}/target/webapp/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<targetPath>${basedir}/target/webapp</targetPath>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<targetPath>${basedir}/target/webapp/WEB-INF/classes</targetPath>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>${basedir}/src/main/resources/spring-common-bean-context.xml</filter>
<filter>${basedir}/src/main/resources/byto.cyoz.properties</filter>
</filters>
...