Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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 如何将所有依赖项放在runnable jar的单独文件夹中?_Java_Maven - Fatal编程技术网

Java 如何将所有依赖项放在runnable jar的单独文件夹中?

Java 如何将所有依赖项放在runnable jar的单独文件夹中?,java,maven,Java,Maven,我正在使用mvn包创建一个可运行的jar,其中包含所有的依赖项,运行良好。 但我更喜欢将所有外部依赖项打包在一个单独的文件夹中。因此,我需要改变什么 <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <

我正在使用
mvn包
创建一个可运行的jar,其中包含所有的依赖项,运行良好。 但我更喜欢将所有外部依赖项打包在一个单独的文件夹中。因此,我需要改变什么

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <archive>
                <manifest>
                    <mainClass>my.MainApp</mainClass>
                </manifest>
            </archive>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
        </plugin>

maven汇编插件
2.4
带有依赖项的jar
my.MainApp
组装
包裹
单一的

使用
maven dependencies插件
为执行
复制依赖项
指定输出目录

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
        <goal>copy-dependencies</goal>
        </goals>
        <configuration>
        <outputDirectory>${project.build.directory}/lib/</outputDirectory>
        </configuration>
      </execution>
    </executions>
</plugin>

希望这有帮助

您可以从中获得帮助。可运行jar如何知道在哪个目录中查找所需的依赖项?
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
    <archive>
        <manifest>
        <addClasspath>true</addClasspath>
        <classpathPrefix>lib/</classpathPrefix>
        <mainClass>foo.bar.MainClass</mainClass>
        </manifest>
    </archive>
    </configuration>
</plugin>