0

我使用 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>
...
4

0 回答 0