java - Maven 中的可运行 jar 以及如何使用依赖项和 list

标签 java maven

当我从 Eclipse 运行 Maven 并生成 JAR 时,一旦发布,我需要从命令行以这种方式运行 JAR:

java -classpath [long list of dependencies] uk.co.superzoom.App

这是发布 JAR 的最佳方式还是我应该更改 pom.xml 以便能够以这种方式运行 JAR:

java -jar myjar.jar

如果是第二种情况,则需要进行两处更改:

1) 将有关主类的信息添加到 list 中,以创建可运行的 JAR

Main-Class: uk.co.superzoom.App

2)自动添加所有依赖项,而不必每次都从命令行编写长列表(目前它们只能从 Eclipse 中看到,但从命令行我需要添加长列表)。

如何在我的 pom.xml 中实现步骤 (1) 和 (2)。您能提供任何例子吗?

最佳答案

使用 Maven-Shade-Plugin。

来自the plugin's page :

This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade - i.e. rename - the packages of some of the dependencies.

该插件将所有依赖项捆绑到一个可运行的 jar 文件中。它还允许您使用以下代码最小化 jar 文件的大小:

<configuration>
  <minimizeJar>true</minimizeJar>
</configuration>

查看我的question有关最小化的一些信息。

关于java - Maven 中的可运行 jar 以及如何使用依赖项和 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661620/

相关文章:

java - 无法删除 Google App Engine 中的数据存储索引

java - 如何在 Java 中接收大的 OSC blob

java - Lombok 没有生成 getter 和 setter

java - 带有 m2e 的 Eclipse Mars 无法更改 java 编译路径

java - 如何在不创建额外测试模块的情况下使用故障保护和 Junit5 测试 JPMS 服务?

java - 使用 itemReader Spring Batch 读取 XML 中节点的属性

java - Eclipse 自动显示相同的类名

java - 如何在 Java 中获取 UTF-8Y 格式的字节

java - 软件部署流程

Maven 找不到本地 repo Artifact