Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven不重新打包依赖项_Java_Maven_Maven Assembly Plugin - Fatal编程技术网

Java maven不重新打包依赖项

Java maven不重新打包依赖项,java,maven,maven-assembly-plugin,Java,Maven,Maven Assembly Plugin,我使用maven汇编插件将所有依赖项收集到一个jar文件中。我如何告诉maven不要重新打包依赖项并将它们作为jar文件包含到结果jar中 目前我使用以下插件配置 <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution>

我使用maven汇编插件将所有依赖项收集到一个jar文件中。我如何告诉maven不要重新打包依赖项并将它们作为jar文件包含到结果jar中

目前我使用以下插件配置

<plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>package.Program</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
而不是

my-jar-with-dependencies.jar
|-class1.class
|-class2.class
|-.............

如果我正确理解了这个问题,那么您需要指定何时运行程序集插件。在这种情况下,您应该考虑创建一个并将程序集插件配置添加到新的配置文件。 在pom.xml中添加:

<project>
...
 <profiles>
    <profile>
        <id>myprofile</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>package.Program</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
 </profiles>
...
</project>

不,我希望将汇编插件设置为不将依赖项解压缩到生成的jar文件中。它必须将它们作为jar文件包含。您应该使用zip和依赖项描述符ref,jar不能包含其他jar
maven assembly plugin
可以创建zip文件(
zip
在您的程序集描述符文件中),但您需要将其解压以实际运行应用程序。@dma_k,但是eclipse能够导出带有嵌入式jar的jar。您接下来如何处理这个jar?您能从命令行执行它吗?
<project>
...
 <profiles>
    <profile>
        <id>myprofile</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>package.Program</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
 </profiles>
...
</project>
mvn -Pmyprofile clean package