2

我想根据配置文件过滤目录及其内容。这是我的 pom.xml:

<build>
    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            <targetPath>properties</targetPath>
        </resource>
    </resources>
    <filters>
        <filter>src/main/resources/${env}/ucm.properties</filter>
    </filters>
</build>

<profiles>
    <profile>
        <id>int</id>
        <properties>
            <env>int</env>
        </properties>
    </profile>
    <profile>
        <id>uat</id>
        <properties>
            <env>uat</env>
        </properties>
    </profile>
    <profile>
        <id>stag</id>
        <properties>
            <env>stag</env>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>
</profiles>

这是我的项目结构:

在此处输入图像描述

但是当它构建 jar 时,它会复制其中的所有文件夹(int、uat、stag、prod)。

我该如何解决这个问题?

4

1 回答 1

1

您需要在资源声明中添加部分。像那样:

    ...   
    <resource>
        <directory>${basedir}/src/main/resources</directory>
        <filtering>true</filtering>
        <targetPath>properties</targetPath>
        <includes>
          <include>${env}/*</include> <!-- including only the associated profile dir -->
          <include>env.properties</include>
        </includes>
    </resource>
    ...

我不知道该${env}物业是否可以在那里工作,否则可能${project.activeProfiles[0].id}会工作

有关更多信息,请参阅http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

于 2013-10-10T12:34:09.607 回答