如何将资源从一个Maven项目复制到另一个

时间:2018-10-18 14:38:09

标签: eclipse maven war keycloak eclipse-wtp

我有一个Maven项目,其中包括一个父项目和一个子项目。孩子们包括许多战争项目和一个jar项目(外部)。我想从jar项目的文件夹中将json文件(keycloak.json)复制到所有war项目的WEB-INF中。

到目前为止,我通过在每个项目中都有一个包含所有keycloak.json的文件夹来使其工作。 (根据所使用的Maven配置文件选择不同的keycloak.json)。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>${maven.war.plugin.version}</version>
    <configuration>
        <webResources>
            <resource>
                <directory>keycloak/${keycloak.dir}</directory>
                <targetPath>WEB-INF</targetPath>
                <filtering>true</filtering>
                <includes>
                    <include>**/keycloak.json</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>

我正在尝试从jar文件中复制keycloak.json,因此我不必在其他项目中重复20次。到目前为止,我已经尝试了以下方法,该方法似乎将文件复制到目标,但是在Eclipse中WTP并未将其提取

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copyKeycloak</id>
            <phase>generate-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/WEB-INF</outputDirectory>
                <overwrite>true</overwrite>
                <resources>
                    <resource>
                        <directory>../external/src/main/resources/keycloak/${keycloak.dir}/</directory>
                        <includes>
                            <include>keycloak.json</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

1 个答案:

答案 0 :(得分:0)

最后,我找到了更接近于原始解决方案的解决方案。它取决于父pom的相对项目路径,在我看来,这不是问题。外部是我罐子的名字

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>${maven.war.plugin.version}</version>
    <configuration>
        <webResources>
            <resource>
                <directory>../external/src/main/resources/keycloak/${keycloak.dir}</directory>
                <targetPath>WEB-INF</targetPath>
                <filtering>true</filtering>
                <includes>
                    <include>**/keycloak.json</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>