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 获取所有项目的 deps 列表。 . dependency:build-classpath

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

相关文章:

go - 从 Codegansta CLI 获取标志值

java - 将 HTTP 请求重定向到不同的服务器

java - 具有缓冲区偏移量的 glbuffersubdata,不会导致垃圾

hibernate - 创建 bean sessionFactory 时出错,抛出异常

objective-c - macOS:检测所有应用程序启动,包括后台应用程序?

Swift 命令行工具需要其他文件

java - OSGi 性能调试

java - 短代码的 Python 到 Java 翻译

java - Sonar maven 插件在类路径中看不到父类

未找到 Java 9 自动模块