当前位置: 首页 > 面试题库 >

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

亢正德
2023-03-14
问题内容

我正在尝试使一个Maven托管项目在命令行上运行。

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

现在的问题是我试图这样运行jar:java -jar project-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插件。它会将您的jar打包到包含以下内容的目录结构中

  1. 依赖罐
  2. 创建的罐子
  3. Shell / Windows脚本执行

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

选项3:
如果您不想要所有行李而只想要一个行李,那么jar-with-dependency
您可能想在这里参考如何使用Maven创建一个具有依赖关系的可执行JAR?

这将在其中包含所有相关的jar。

编辑1: 对于选项1,BradM提到您可以使用依赖插件来获得所有项目部门的清单。dependency:build- classpath



 类似资料:
  • 我做了一个简单的项目,其中包含一些测试,我希望能够在其他计算机上启动测试。我使用runas构建了这个项目- 错误:在com类中找不到Main方法。实例TestPurchase,请将main方法定义为:publicstaticvoidmain(String[]args)或JavaFX应用程序类必须扩展JavaFX。应用应用 据我所知,TestNG不需要任何主方法,因为有注释。这就引出了一些问题: 我

  • 问题内容: 在maven中,使用以下语法在pom中设置属性非常容易: 现在,我需要构建一个取决于pom版本的属性。为了创建属性,我想执行以下操作(java伪代码): 它应该是动态的,因为它在我们的存储库中用作标记名,并且必须始终与工件的版本同步。 任何想法如何创建该“动态”属性? 问题答案: Mojo的Build-Helper Maven插件可以在这里为您提供帮助。 有许多目标可用于帮助转换属性。

  • 我正在使用maven jaxws插件从我的wsdl模式生成java类。它没有在生成的类中生成@XmlElementWrapper注释。从这篇文章中,我了解到我需要使用jaxb xew插件,但我无法让它与maven jaxws插件一起工作。任何帮助都将不胜感激。这是我试过的配置 如果它只能与maven-jaxb2-plugin集成,你能帮我升级我的Web服务吗?本质上,我该如何指定wsdl以及如何生

  • 我想创建一个在eclipse中使用Lifeay-maven-plugin的Liveay插件portlet,但每次我尝试这样做时,我都会遇到这个错误:

  • 我正在使用swagger codegen maven插件从swagger规范生成服务器存根。如果我运行,那么它将正确生成并编译项目。然而,有时我只想运行迸发。 具体地说,我希望避免编译整个项目和运行另一个在验证阶段运行的插件(checkstyles)。理想情况下,我希望从swagger规范生成生成的类,并编译这些类,而不是整个项目。 在当前项目中和从存储库中可用的插件组[org.apache.ma