1

我想用取决于环境配置文件(dev,prod ...)的值填充属性文件 common.properties,但我不希望将文件添加到类路径中。

我阅读了几个主题,例如 使用配置文件从属性文件中读取 Maven 变量

所以我设法用配置文件填充属性:

<profiles>
    <profile>
    <id>dev</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <build>
        <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>${properties-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <id>read-project-properties</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>read-project-properties</goal>
                        </goals>    
                        <configuration>
                            <files>
                                <file>config/common_dev.properties</file>
                            </files>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    </profile>
</profiles>

<build>
    <resources>
        <resource>
            <directory>config</directory>
            <filtering>true</filtering>
        </resource>
        ...
    </resources>
    ...
</build>

在模块中,我有一个文件夹配置,其中包含文件 common.properties 和 common_dev.properties:

common_dev.properties:
    common.reception.directory.norm = PHASE1V1
common.properties:
    common.reception.directory.norm = ${common.reception.directory.norm}

common.properties 很好地填充了 mvn clean install,但是 config 目录成为 Eclipse 中的源文件夹,已添加该目录的类路径条目。这是我的问题,common.properties 文件位于应用程序中,环境变量包含其路径,而不是从类路径中读取。它有效,但对项目开发人员来说很困惑。

我也尝试使用 properties-maven-plugin 的 write-project-properties 和 write-active-profile-properties 但第一个将我所有的项目属性写入文件,第二个什么都不写,因为 read-project-properties 读取属性作为项目属性而不是配置文件属性。

有没有办法做我想做的事?

4

1 回答 1

0

您可以尝试使用 maven eclipse 插件来专门配置 eclipse 以排除特定的文件夹/文件。

于 2012-12-07T13:44:05.957 回答