使用maven的Onejar不会将资源复制到jar中

时间:2011-04-16 17:36:52

标签: maven

我正在使用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>

我做错了什么?如何在一个罐子中包含资源?

2 个答案:

答案 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