Maven:使用依赖项运行创建的Jar-File

时间:2014-12-16 10:58:05

标签: java maven

我已经写了一个小的Java命令行工具,我想用它运行(例如)

java -jar myJarFile.jar de.my.path.MainClass arg0 arg1 arg2

为了构建jar-File并管理依赖项,我正在使用Maven。现在我发现,Maven没有在Jar-File中包含POM-File的依赖性。所以,当我运行我的jar文件时,我得到了ClassNotFoundExceptions ..但是为了执行我的jar文件,我需要在类路径中使用这些库。

我如何使用Maven管理这个?

感谢您的帮助!!

2 个答案:

答案 0 :(得分:3)

将此maven程序集插件放在pom.xml中:

    <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>de.my.path.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

答案 1 :(得分:2)

有多种选择。

  • maven app assembly plugin

    这个包所有依赖的jar并且还创建linux / windows脚本来运行你的应用程序。有关如何使用它的更多信息,请参阅Here

  • Maven程序集插件

    它创建包含所有依赖项的单个可执行jar。 More在这里。但是我发现这个问题与一些第三方罐子(春天)存在同名文件。