如何从可执行jar文件中打包并启动maven?

时间:2013-04-26 09:38:04

标签: java maven

我想创建单个可执行jar,它将包含来自maven的所有jar和所需的配置文件。这与maven-dependency-plugin有关。我应该包含哪些jar文件?安装maven后我们在lib文件夹中的所有文件?

我该如何开始? Launcher类是org.codehaus.plexus.classworlds.launcher.Launcher?

谢谢。

2 个答案:

答案 0 :(得分:2)

你必须在你的pom文件中添加maven程序集插件,它应该是这样的

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                      <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                      <manifest>
                        <mainClass>org.codehaus.plexus.classworlds.launcher.Launcher</mainClass>
                      </manifest>
                    </archive>
                  </configuration>
                <version>2.3</version>
            </plugin>

我猜你的Launcher类中有一个main方法定义,它将是你的应用程序的入口点。在此之后,您必须使用运行项目所需的依赖项来打包代码。在终端中,请参阅您的项目主目录并使用

进行构建
mvn assembly:assembly

将生成两个jar文件,使用jar依赖于运行您的应用程序。现在使用

运行你的jar
java -jar your_jar_with_dependency.jar

答案 1 :(得分:0)

您可以尝试使用maven-dependency-plugin来删除未使用的依赖项。它会生成一个关于你宣布和使用什么的html报告,你宣布和不使用什么,你在使用什么而不是声明。清除在编译时使用的那些只会很有用,但它是一个很好的起点。此外,创建庞大的jar并不总是最佳选择,maven背后的想法不是必须打包所有依赖项并分发它们,而是依靠公共存储库来下载依赖项。