我正在使用one-jar来打包我的程序。我在src / main / resources中有资源。 maven-resources-plugin正确地将资源复制到jar中,但onejar生成的jar不包含我的资源。
这是我的pom:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ziroby</groupId>
<artifactId>resourceTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>resourceTest</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.dstovall</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<configuration>
<attachToBuild>true</attachToBuild>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
</pluginRepositories>
</project>
我做错了什么?如何在一个罐子中包含资源?
答案 0 :(得分:2)
我发现了我的错误。它把它放在罐子里,而不是我想象的那样。它包含在主罐子里面的一个罐子里。具体来说,resourceTest-0.0.1-SNAPSHOT.one-jar.jar
包含resourceTest-0.0.1-SNAPSHOT.jar
,其中包含我的资源。
现在我只需要了解如何访问资源,但这是另一个值得进行更多研究的问题。
答案 1 :(得分:0)
如果你使用类似的东西:
getClass().getClassLoader().getResourceAsStream
请改为使用:Thread.currentThread().getContextClassLoader().getResourceAsStream