1

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

我应该如何开始呢?启动器类是 org.codehaus.plexus.classworlds.launcher.Launcher?

谢谢你。

4

2 回答 2

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 来运行您的应用程序。现在使用

java -jar your_jar_with_dependency.jar
于 2013-04-26T10:36:38.753 回答
0

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

于 2013-04-26T23:08:10.013 回答