java - 相对于最终 Jar 的 Maven Shade 外部属性文件

标签 java maven maven-shade-plugin

大家好!!

抱歉,如果这是一个愚蠢的问题,但我是 Maven 新手,已经陷入僵局!

  1. 我有一个使用 MyTest.properties、MoreMyTest.properties 的项目。
  2. 我使用 Maven Shade 插件将此项目构建为 .jar 文件,运行良好!不幸的是,shade 插件正在将 MyTest.properties 打包到我的 jar 文件中。

然后,当我尝试执行该 jar 时,出现此错误。

java.io.FileNotFoundException: Unable to locate: properties/MyTest.properties at file:\C:\Dev\test.jar!\properties\MyTest.properties at ...

我想在 IDE 中访问我的属性,并在部署时通过命令行运行 jar。我正在考虑将属性文件放在 jar 文件位置上方的相对文件夹 ../lib/中。

在我的程序中,我想访问如下属性:

File testProperties = new File(
  ClassLoader.getSystemResource("properties/MyTest.properties").getFile()
);

我尝试将其添加到我的 POM.xml

<transformer
    implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
  <resource>*.properties</resource>
  <file>../*properties</file>
</transformer>

(抱歉,上面的代码片段格式困惑!)

但是,它不起作用。我真的很感激任何帮助。我没有发布所有代码,因为代码确实很大,但我希望您能了解我想要实现的目标。

非常感谢, 保罗

最佳答案

好的,我有一个解决方案。总是这样,就在发布后!但谢谢你的回复。

  <plugin>
            <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>../lib</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

关于java - 相对于最终 Jar 的 Maven Shade 外部属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552960/

相关文章:

java - 将不同的 java 类捆绑在单个 jar 文件中

java - Play 2.3.x 可以在没有 Activator(和 Maven)的情况下使用吗?

java - Flink使用gradle代替maven的优缺点

maven - 如何让 maven-gpg-plugin 使用来自环境变量或命令行属性的密码?

java - maven-shade-插件 : how add all dependencies and custom local jar to executable jar?

java - Maven:使用指定主类和属性文件的 shade-plugin 编译项目

maven - 使用一些 Maven 插件重命名 jar 中的文件

java - Java 8 Stream并行处理时,所有处理器核心的缓存是否同步?

java - 将 PostgreSQL Query 转换为对应的 Hibernate Query

java - 如何限制对可变或不可变方法的访问?