Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在CLI上运行maven生成的jar_Java_Maven_Command Line Interface - Fatal编程技术网

Java 如何在CLI上运行maven生成的jar

Java 如何在CLI上运行maven生成的jar,java,maven,command-line-interface,Java,Maven,Command Line Interface,我试图让一个maven管理的项目在命令行上运行 我在pom.xml中有一组依赖项,这些依赖项随后被下载并安装在~/.m2/repository/中。我已经在pom中包含了必要的配置,以便将类路径添加到jar清单中 现在的问题是,我正试图运行jar:java-jarproject-SNAPSHOT.jar Java找不到下载的依赖项(我假设是因为它们在清单中没有列出路径),但我不确定如何最好地运行它 选项1: 创建的jar没有依赖的jar文件。因此,您需要告诉java所有依赖JAR所在的类路径

我试图让一个maven管理的项目在命令行上运行

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

现在的问题是,我正试图运行jar:java-jarproject-SNAPSHOT.jar

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

选项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
plugin是更简单、更好的解决方案。它的作用是将您的jar打包到包含

  • 独立罐
  • 创建的jar
  • shell/windows脚本来执行它
  • 看看这里

    选项3:
    如果您不想要所有的行李,只想要一个具有依赖关系的
    jar
    你可以在这里参考一下

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


    编辑1:对于选项1,您可以使用<代码>依赖项:生成类路径

    mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime  
    

    你可以在这里找到更多的例子:。

    太棒了——这正是我需要的。像这样包装所有东西有什么警告吗?还是一切都好。内存使用等?没有什么。它非常简单的东西,和1一样。制作罐子,2。正在复制repo文件夹中的从属项,3。编写类似以下内容的shell脚本
    java-jar../myapp.jar Mainclass-cp../repo/*.jar
    re选项1,使用<代码>依赖项:构建类路径不适用于maven 3.0.4
    [ERROR]未知生命周期阶段。mainClass=my.Main“