我正在使用Assembly插件使用Maven构建一个可执行jar。我有一个资源文件(.xml)放在src / main / resources。当我构建可执行jar时,文件没有被复制到jar中 - 通过解压缩jar来检查。
这是我的pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>package-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>xx.com.xxx.xxxx.xx.xxxx.InterfaceRunner</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</execution>
</executions>
</plugin>
我正在尝试调用以下保存在src / main / resources下的资源:
reader = Resources.getResourceAsReader("mybatis-configuration.xml");
执行java -jar InterfaceRunner.jar
Exception caught while reading or parsing the mybatis config xml :java.io.IOException: Could not find resource mybatis-configuration.xml
at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:108)
at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:95)
at org.apache.ibatis.io.Resources.getResourceAsReader(Resources.java:153)
之前有没有人遇到过类似的问题?寻求你的帮助,Maven大师..
答案 0 :(得分:0)
您可以尝试按以下方式替换Configuration
;
<configuration>
<archive>
<manifest>
<mainClass>xx.com.xxx.xxxx.xx.xxxx.InterfaceRunner</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>InterfaceRunner</finalName>
</configuration>
然后
mvn package
答案 1 :(得分:0)
默认情况下,maven-assembly-plugin
生成两个罐子,而不是一个(带有相位包)。确保您运行的是<artifactid>-<version>-jar-with-dependencies.jar
如果这不是问题,你在这里做了什么奇怪的事情:
<build>
<resources>
<resource>
<targetPath><!-- here?? --></targetPath>
</resource>
</resources>
<!-- etc. -->
</build>