java - 如何在 CLI 上运行 Maven 生成的 jar

标签 java maven command-line-interface

我正在尝试让 Maven 管理的项目在命令行上运行。

我在 pom.xml 中有一组依赖项,随后将其下载并安装在 ~/.m2/repository/中。我已在 pom 中包含必要的配置,以将类路径添加到 jar list 中。

现在的问题是我正在尝试运行该 jar:java -jar project-SNAPSHOT.jar。

Java 找不到下载的依赖项(我假设是因为它们在 list 中列出时没有路径?),但我不确定如何最好地运行它。

最佳答案

选项1:
创建的jar没有依赖的jar文件。因此,您需要告诉 java 所有依赖 jar 所在的类路径

    java -cp /lcoation/of/dependency1.jar:/location/of/dependency2.jar:/location/of/dependency3.jar -jar project-SNAPSHOT.jar

选项 2:
更简单、更好的解决方案是使用 AppAssembler 插件。它的作用是将您的 jar 打包到包含的目录结构中

  1. 依赖 jar
  2. 创建的 jar
  3. shell/windows 脚本来执行它

看看这里 http://www.mojohaus.org/appassembler/appassembler-maven-plugin/

选项3:
如果您不想要所有包袱,而只想拥有一个 jar-with-dependency 您可能需要引用这里 How can I create an executable JAR with dependencies using Maven?

这将包含其中的所有依赖 jar。

<小时/>

编辑 1:对于选项 1,Brad M提到您可以使用 dependency plugin 获取所有项目部门的列表。 。 依赖:构建类路径

关于java - 如何在 CLI 上运行 Maven 生成的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923126/

相关文章:

java - 如何使用相同的库在 Eclipse 中编译和运行?

linux - 如何使用 scp 将 maven Artifact 部署到远程服务器

java - 如何从 Maven Central 下载 .war 文件?

command-line-interface - DBeaver:如何使用命令行生成ER图?

node.js - 如何使用 Node.js 响应命令行提示符

java - 为什么编译器会说如果变量需要在循环中才能通过,则可能不会对其进行初始化?

java - 如何自动调整jPanel的大小

java - Android 中 Canny 边缘检测器的快速自适应阈值

java - 向路径添加双斜杠

gruntjs - 不带变量名的 Grunt 选项