将资源文件从子模块复制到maven中的主模块

时间:2018-06-05 12:55:15

标签: java maven resources

在我的java应用程序中,我只是想知道是否可以将sven / main / resources下的资源文件从maven子模块复制到主maven模块(将子模块作为依赖项)src / main / resources文件夹,因此我不需要将所有资源文件再次手动复制到我的工作区中。

1 个答案:

答案 0 :(得分:0)

您可以使用Maven依赖插件来做到这一点。

这是您可以在主模块pom.xml中的“构建”>“插件”部分中包含的配置。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.1</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>hepl.cecotepe.epick</groupId>
                                <artifactId>wsdl</artifactId>
                                <version>${wsdl.version}</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                        <overWrite>true</overWrite>
                        <outputDirectory>${basedir}/src/main/resources/webservices</outputDirectory>
                        <includes>**/*.wsdl, **/*.xsd</includes>
                        <excludes>**/META*/**, **/Documentation/**</excludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>

artifactItem是要将文件从中复制到模块中的模块。在这种情况下,您将用子模块groupId,artifactId和版本填充artifactItem字段。

该插件将在除Documentation和META *文件夹(及其子文件夹)之外的所有文件夹(包括目标,src和子文件夹)中获取所有.wsdl和.xsd文件。每次将文件复制到主模块/ resources / webservices文件夹中。

要使整个组件正常工作,您需要将子模块打包为jar(在子模块pom.xml中包含jar),然后使用 mvn install 将其安装在本地maven存储库中。之后,您可以使用 mvn初始化

将文件复制到主模块中

注意:初始化阶段包含在默认生命周期中,并且是执行的第一个阶段。当您使用默认生命周期时,maven要做的第一件事就是将文件从子模块复制到主模块。