1

大家好!!

对不起,如果这是一个愚蠢的问题,但我是 Maven 的新手并且已经陷入僵局!

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

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

java.io.FileNotFoundException:无法找到:文件中的属性/MyTest.properties:\C:\Dev\test.jar!\properties\MyTest.properties 在...

我想在我的 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>

(抱歉,上面的代码片段的格式弄乱了!)

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

非常感谢,保罗

4

1 回答 1

1

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

  <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>
于 2014-08-28T16:10:00.050 回答