我有一个包含5个模块的maven项目父项目。
public static main 位于第一个模块中。第一个模块调用第五个模块。第五个模块从文件夹加载文件。所有事物的共鸣是:
module1
module2
module5
config(this folder)
plugings.xml (this file)
在第五个模块中,我想加载plugins.xml
,我在这里:
String configPath = System.getProperty("moquette.path", null);
File filePluginsConfiguration = new File(configPath,
"config/plugins.conf");
if (!filePluginsConfiguration.exists()) {
LOG.warn(String
.format("parsing not existing file %s, so fallback on default plugin configurations!",
filePluginsConfiguration.getAbsolutePath()));
我知道这不正确,因为moquette.path指向一个不同的文件夹。但我不知道如何将其指向我的plugins.xml文件
你可以帮忙吗答案 0 :(得分:0)
您可以将module5配置文件夹复制到类路径中。
在 Maven 中,您可以使用maven-resources-plugin来执行此操作:
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>module5/config</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
答案 1 :(得分:0)
在某些情况下,类路径中的文件比文件系统中的文件更有用和模块化。
将文件放在`src / main / resources / some / package / plugins.conf'中,然后使用Guava资源类来访问它(有一个更详细的直接JRE替代方案)。
URL url = Resources.getResource("/some/package/plugins.conf");
String text = Resources.toString(url, Charsets.UTF_8);
或者使用Resources类的其他方法获取流或阅读器。在任何情况下,文件都可以“存在”模块(a)中并在模块(b)中使用。