gpt4 book ai didi

java - 与其他 Maven 模块共享过滤后的资源

转载 作者:行者123 更新时间:2023-11-30 04:05:04 25 4
gpt4 key购买 nike

我还有另一个 Maven 结构问题...=/

具有 3 个不同模块的示例项目:

CONFIG(包含所有配置文件)

DAO(取决于 CONFIG)

服务(取决于 DAO 和 CONFIG)

CONFIG 模块使用“maven-resources-plugin”在其“target”文件夹中生成过滤后的资源。 DAO 和 SERVICE 模块如何访问这些过滤后的资源?

帮助帮助请帮助=)

这是 CONFIG 模块 POM 的资源过滤器部分:

<build>
<filters>
<filter>src/main/resources/basic.properties</filter>
</filters>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/context*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

最佳答案

CONFIG 模块应该生成一个 JAR,其根目录中包含已过滤的资源。其他模块应该能够通过其类路径访问这些资源,其中应该包含 CONFIG jar,使用 ClassLoader.getResource(String)ClassLoader.getResourceAsStream(String) .

编辑:在下面评论后。

您不需要重新声明资源插件,只需指定 resources in the build section像这样的pom:

<build>

<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>**/context*.xml</include>
</includes>
</resource>
</resources>

</build>

关于java - 与其他 Maven 模块共享过滤后的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com