【问题标题】:Exec Maven Plugin to Command Line执行 Maven 插件到命令行
【发布时间】:2012-11-02 02:59:54
【问题描述】:

我有一个在 NetBeans/Maven 中开发的应用程序,可以通过命令行启动:

mvn exec:exec "-Dexec.executable=C:\\Java\\jdk1.6.0_33\\bin\\java.exe" "-Dexec.args=-Dlog4j.properties=... -classpath %classpath com.xxx.MyLauncher" -Dexec.classpathScope=runtime -Dexec.workingdir=

现在我需要通过标准的java命令行方法来运行应用程序,比如:

java -Dlog4j.properties=... -jar myapp-1.2-SNAPSHOT.jar

不幸的是,这不能以相同的方式工作,因为我得到以下异常:

opencard.core.util.OpenCardPropertyLoadingException: property file not found

问题:

  • 使用 Exec-Maven 插件启动应用程序与在命令行上执行标准 java 有什么区别?
  • 是否有一种简单的方法可以将 Maven 执行脚本转换为标准命令行?
  • 如何成功运行应用程序?

【问题讨论】:

  • 你的 jar 是否包含所有依赖项?请参阅此处了解更多信息:link
  • 显然在命令行上执行 jar,因为它是可执行的,而在 pom.xml 中,你给它类路径和主类;您是否检查过您的清单条目是否与 Maven 构建的已执行命令行匹配?
  • 似乎是类路径的问题,由这个错误引起的 [jira.codehaus.org/browse/MASSEMBLY-334].用 maven-shade-plugin 替换 maven-assembly-plugin 解决了这个问题。感谢您的支持!

标签: java command-line smartcard exec-maven-plugin


【解决方案1】:

问题是由 bug 引起的类路径。 将 maven-assembly-plugin 替换为 maven-shade-plugin 即可解决此问题。

【讨论】:

  • 感谢您的反馈。您现在可以接受已投票的问题和答案。
猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多