从另一个Maven项目复制/包含资源

时间:2020-05-05 10:45:43

标签: maven-3 pom.xml maven-resources-plugin

让我解释一下我要寻找的东西。

有一个项目的POM.xml位于路径

project/ui/application/pom.xml. 

我通常使用ui / applicatio.pom.xml构建我的WAR文件。

在UI的POM中,我包含了几个模块,例如“ applicationDTO”,并且其POM在路径中

project/common/applicationDTO/pom.xml.

现在applicationDTO项目中有一个文件"ABC.properties",我想包含在使用UI项目创建的WAR文件中。

简而言之,我想在UI项目中包含ABC.properties文件。

下面是我尝试过的方法,但是我收到了类似的错误消息

skip non existing resourceDirectory C:\Users\Desktop\project\ui\application\common\applicationDTO\QA

注意:项目是具有UI和applicationDTO项目的源文件夹。我希望通过POM将文件形式applicationDTO文件夹复制到UI文件夹中。

如果无法解释我的问题,请原谅。

1 个答案:

答案 0 :(得分:1)

您可以为此使用Maven资源插件

https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

您可能需要调整路径以使其起作用

更新:

考虑您的文件夹结构为

ABC 
-ui
  - application (build here)
    - pom.xml
    - classes
-common
  - ABC.properties

现在从应用程序文件夹运行Maven构建时,下面可能是该部分

    <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.7</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>./classes</outputDirectory>
                <resources>
                    <resource>
                        <includes>
                            <include>ABC.properties</include>
                        </includes>
                        <directory>../../common</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
                <delimiters>
                    <delimiter>@{*}</delimiter>
                </delimiters>
                <useDefaultDelimiters>false</useDefaultDelimiters>
            </configuration>
        </execution>
    </executions>
</plugin>