Java 使用maven程序集插件时,在类路径中找不到资源

Java 使用maven程序集插件时,在类路径中找不到资源,java,maven-2,maven-assembly-plugin,Java,Maven 2,Maven Assembly Plugin,我使用maven assembly将可执行jar及其依赖项和资源打包。资源(spring应用程序上下文)从jar中排除。当我运行mvn assembly:assembly时,测试运行,构建成功。但是,当我在assemby打包之后运行可执行jar时,我会得到FileNotFoundException。找到了压缩在\lib下的依赖项,如spring framework。资源my application context.xml文件也打包在\lib下。你能帮忙吗 以下是POM的示例: <plugi

我使用maven assembly将可执行jar及其依赖项和资源打包。资源(spring应用程序上下文)从jar中排除。当我运行
mvn assembly:assembly
时,测试运行,构建成功。但是,当我在assemby打包之后运行可执行jar时,我会得到
FileNotFoundException
。找到了压缩在
\lib
下的依赖项,如spring framework。资源
my application context.xml
文件也打包在
\lib
下。你能帮忙吗

以下是POM的示例:

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2.2</version>
            <configuration>
                <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </descriptors>
                <excludes>
                    <exclude>*.xml</exclude>
                </excludes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <excludes>
                    <exclude>**/*.xml</exclude>
                </excludes>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.myapp.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>

org.apache.maven.plugins
maven汇编插件
2.2.2
src/main/assembly/assembly.xml
*.xml
org.apache.maven.plugins
maven jar插件
2.3.1
**/*.xml
真的
解放党/
com.myapp.MainClass
以及描述符:

<formats>
    <format>zip</format>
</formats>
<files>
    <file>
        <source>${project.basedir}/src/main/resources/my-application-context.xml</source>
        <outputDirectory>lib</outputDirectory>
    </file>
</files>
<dependencySets>
    <dependencySet>
        <useProjectArtifact>false</useProjectArtifact>
        <outputDirectory>lib</outputDirectory>
        <unpack>false</unpack>
    </dependencySet>
</dependencySets>
<fileSets>
    <fileSet>
        <directory>${project.build.scriptSourceDirectory}</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>*.bat</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${project.build.directory}</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>*.jar</include>
        </includes>
    </fileSet>
</fileSets>

拉链
${project.basedir}/src/main/resources/my-application-context.xml
解放党
假的
解放党
假的
${project.build.scriptSourceDirectory}
/
*蝙蝠先生
${project.build.directory}
/
*jar先生

您可能正在经历与依赖项jar的INDEX.LIST文件相关的问题。

在可执行jar中生成的清单文件是什么样子的?