【问题标题】:How Can One Include Resources From Another Module In A Spring Boot Maven Multi Module Project如何在 Spring Boot Maven 多模块项目中包含来自另一个模块的资源
【发布时间】:2018-07-24 23:49:55
【问题描述】:

我有一个 spring boot mavel 多模块项目。

如果 Spring Boot 模块依赖于模块 A 并且在模块 Asrc/main/resources 文件夹中有一个属性文件或其他一些我想捆绑在最终的 Spring Boot 应用程序中的资源,我该如何实现这个。

目前,如果我在模块 A JAR 上运行 jar -tf,它会包含该文件:

jar -tf module-a/target/module-a-0.0.1-SNAPSHOT.jar | grep changelog

db/changelog/
db/changelog/db.changelog-master.yaml

但是:

jar -tf boot-module/target/boot-module-0.0.1-SNAPSHOT.jar | grep changelog | wc -l
       0

提前感谢您的任何建议。

【问题讨论】:

标签: maven spring-boot spring-boot-maven-plugin


【解决方案1】:

如果我正确理解您的要求,我相信您可以在 Spring Boot 模块中使用maven-dependency-pluginunpack 目标:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>module-a</artifactId>
                        <version>${project.version}</version>
                        <includes>**/*.yaml</includes>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>${project.build.directory}/classes/</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

这会将资源从module-a 复制到boot-module。我在GitHub 上发布了一个完整的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 2015-10-10
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2016-03-27
    相关资源
    最近更新 更多