java - 马文 : add external resources

标签 java maven jar maven-resources-plugin maven-jar-plugin

我正在使用 maven 构建一个可执行 jar 文件,这意味着您可以使用“java -jar file.jar”运行它。

我想依赖用户定义的属性(只是一个包含键/值的文件),在开发阶段我将我的“user.properties”文件放在 maven/src/main/resources/文件夹中。

我的属性文件加载了:

final Properties p = new Properties();
final InputStream resource = IOParametres.class.getResourceAsStream("/user.properties");
p.load(resource);

现在,我想将该文件保存在 JAR 之外,并拥有类似这样的内容:

- execution_folder
   |_ file.jar
   |_ config
      |_ user.properties

我用 maven-jar-plugin、maven-surefire-plugin 和 maven-resources-plugin 等 maven 插件尝试了很多东西,但我无法让它工作...

预先感谢您的帮助!

最佳答案

我只使用 maven 配置就找到了我需要的东西。

首先我将配置文件夹添加到类路径中:

<build>
<plugins>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <configuration>
        <archive>
            <manifestEntries>
                <Class-Path>config/</Class-Path>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>
</plugins>
</build>

我像以前一样加载资源:

final InputStream resource = IOParametres.class.getResourceAsStream("/user.properties");
p.load(resource);

如果您想将示例资源文件保留在您的存储库中并从您的构建中删除它们:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>user.properties</exclude>
                <exclude>conf/hibernate.cfg.xml</exclude>
            </excludes>
        </resource>
    </resources>
</build>

在 jar 文件旁边,我添加了一个配置文件夹,其中包含我需要的所有资源文件。

结果是:

  • user.properties 可以使用 getResourceAsStream 加载
  • 依赖特定资源的其他图书馆(我不会争辩,但我发现它......不是那么好)可以毫无问题地加载他们的资源。

感谢您的帮助,我希望有一天它能对某人有所帮助!

关于java - 马文 : add external resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26672221/

相关文章:

java - Tomcat 7 Datasource注入(inject)机制

hibernate - 在两个应用程序中访问相同的 hibernate.cfg.xml

java - Maven - 有没有办法轻松创建一个 'uber' jar 并重新定位所有依赖项?

java - 使用@Query 在 ElasticSearch 中设置大小

java - OpenGL 中的平滑线条

maven - 对属性进行计算

android - 使用 maven 构建 apk 中的 ClassNotFoundException

android - 如何在proguard中添加vitamio?

java - 查看 .jar 文件的内容

java - Stripes Framework 中根据 Language 加载文件