【问题标题】:resources folder inside jarjar中的资源文件夹
【发布时间】:2014-08-24 17:07:40
【问题描述】:

我知道将属性文件放在 jar 中不是一个好习惯,但我们的场景规定了这个要求。我想要的是将资源文件夹的内容按原样放入 jar 中。在我的 maven 项目中,资源的内容被添加到 jar 中,但位于 jar 的根目录中。我需要的是有一个具有这种结构的罐子:

jar 根目录
|__com
| |_我的公司
| |____我的 java 文件按预期放在这里
|__资源
|__我的属性文件和配置文件应该在这里

我得到的是:

jar 根目录
|__com
| |__我的公司
| |____我的 java 文件按预期放在这里
|
|__我的属性文件和配置文件

我知道我可以将资源文件夹添加为 eclipse 中的源文件夹,但我需要一个基于 maven 的解决方案。

提前致谢。

【问题讨论】:

  • 在 jar 文件中这是没有意义的。只需在src/main/resources 下创建文件夹结构,如src/test/resources/resources/...
  • 当资源中的文件是安全密钥时它会这样做:) 你现在怎么想?
  • 无论如何我都会将文件夹命名为resources
  • 我为该项目准备了相同的结构。我所有的源代码都在 src/main/java 中,我所有的资源都在 src/main/resources 中。

标签: maven maven-3 maven-jar-plugin


【解决方案1】:

您可以配置资源插件来为您执行此操作:

这是一个示例。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>dummyJar</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>dummyJar</name>
  <dependencies>
  </dependencies>
  <build>
  <plugins>
    <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <outputDirectory> ${project.build.outputDirectory}\resources</outputDirectory>
    </configuration>

    </plugin>
  </plugins>
  </build>
</project>

【讨论】:

    【解决方案2】:

    快速破解是将你的资源放入

    src/main/resources/resources/
    

    【讨论】:

    • 这是最后的手段,但我需要一个更清洁的解决方案。
    • 您也可以使用程序集插件来创建jar,这会给您带来很大的灵活性,您可以配置程序集插件以将资源放入侧jar中的resources目录中,而无需执行上述操作
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 2020-05-27
    • 2012-12-07
    • 2013-04-28
    • 2015-05-02
    • 1970-01-01
    • 2015-01-12
    • 2012-03-10
    相关资源
    最近更新 更多