问题标签 [exec-maven-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
21235 浏览

maven-2 - Maven - 传递参数以在 exec-maven-plugin 中使用

在我的 pom 中,我添加了 exec-maven-plugin 来调用将生成文件的 java 类。此类需要将一些参数传递给 main 方法,其中之一是输入文件的位置(项目外部)。到目前为止,我一直在为此使用相对路径,效果很好:

现在我开始使用 hudson 来安装/打包和部署战争,我不能再使用这个相对路径。我想很简单,我只是在调用 maven 时传递输入文件的位置,例如:

mvn clean package -Dlangdir=C:/somedir

然后像这样改变pom:

然而,这个参数在这里被忽略了。主类作为参数接收的路径变为null/PMLanguage.xls。参数本身在 maven 中可用,我在 antrun 插件中使用 echo 成功测试。回响了正确的路径。

无论您在 pom 中的何处引用它们,您传递给 maven 的参数是否默认不可用?

感谢您的帮助,
Stijn

0 投票
3 回答
18924 浏览

java - 在maven中调用exec:java插件时如何传递systemProperties?

我想使用 exec:java 插件从命令行调用主类。我可以使用命令行从命令行传递参数-Dexec.args="arg0 arg1 arg2",但我不知道如何传递系统属性。我试过 '-Dexec.systemProperties="key=value"` 但没有效果。

pom.xml看起来像这样:

0 投票
2 回答
9606 浏览

java - 将环境变量传递给Maven中的执行进程

我一直在用头撞墙大约一个小时:我正在尝试将一个简单的属性 ( java.library.path) 传递给 exec-maven-plugin。目标是让它与 Netbeans 右键单击​​文件 > 运行文件程序集成。

所以我这样设置我的POM:

(我使用的是旧版本,所以我可以看到执行参数,但它完全可以用 1.2 重现)

然后我右键单击我的文件并单击“运行文件”。Netbeans 启动此过程:

(原来的完整类路径执行已更改为exec:exec希望应用我的配置)

但是我的环境变量显然被忽略了,因为结果执行的程序是:

我试过了

  • 在环境变量标签内使用单独的键和值标签
  • 直接在 enviornmentVariables 标签内使用键和值标签(值得一试)
  • 绑定到一个阶段
  • 作为 maven arg 传递并使用 exec:java 代替
  • 在项目配置页面中将 -Djava.library.path=native/win32-x86 作为运行参数和 VM 选项传递

一切都失败了。我在这里真的很茫然。

我想这是在 Maven 中使用 JNI 的缺点:您必须将作为参数传递给您的测试、运行时、模块运行 POM 和父 POM。

所以我的问题是:如何将java.library.path属性传递给已执行的文件?如果它与 Netbeans 运行文件功能集成会很好(因此我不必更改 POM 中的类名,构建,然后运行)

0 投票
4 回答
22582 浏览

java - 在 Maven 中,如何运行位于 src/test/java 下的类?

我继承了一个代码库:)

在 src/test/java/ 下有一个我需要运行的文件(我需要运行它public static void main(String[] args),而不是其中的@Test方法)。

我得到的最接近的是:

但随后失败了,这似乎是因为 RunFile 想要使用 src/main/java/com/me/packagex/ 下存在的类(注意,/main/,而不是 /test/)。那里的文件与RunFile在同一个包中,即'package com.me.packagex;'。

如果我删除它,-Dexec.classpathScope="test"那么它根本找不到 RunFile。好像我需要给它两个范围,但它不接受“测试,编译”。

我从(已去世)那里继承了这个的人曾经从 Eclipse 运行它。我需要一种从命令行运行它的方法。

我希望这能得到清楚的解释。

特维姆,


这是有希望的。帕斯卡,我试过你的例子,但这对我不起作用

虽然现在我看它 - 它没有找到 Demo,而不是没有找到 Dog。

0 投票
3 回答
15105 浏览

maven-2 - 构建期间未启动 exec-maven-plugin 目标

你好,

我尝试在我的 Maven 构建过程中运行一个主要方法。因此,我将 exec-maven-plugin 和以下代码段添加到我的 pom.xml

当我从命令行调用它时,主类存在并且也被执行:

我还尝试创建一个空的新项目来测试,如果 pom 中的其他依赖项导致问题,但没有成功。在 ~/.m2 文件夹中的 maven settings.xml 中,只有镜像条目,但没有配置文件或其他任何可能导致问题的条目。

它只是不启动它。当我在 org.codehouse 下的 repo 中删除所有工件时,它没有下载 exec-maven-plugin。只有当我进行命令行调用时。

有什么提示吗?提前致谢!

编辑:我忘了提到我使用过“mvn clean install”。所以它应该已经通过了编译阶段......

编辑:

到目前为止,我无法解决问题。感谢您到目前为止的回答!我将再次尝试提供所有信息,并希望你们中的一个人找到可疑的部分。我已经不知道了......

我做了什么:

  • 删除我的 maven 代理中的文件夹 org/codehouse/mojo。只是为了显示,何时加载依赖项。
  • 显示一些 java 和 maven 版本信息
  • 使用以下命令构建项目: mvn -clean install (应该通过测试阶段来执行我的主要方法)
  • 执行 main 方法以显示,exec-maven-plugin 仅在之后加载并工作

据我了解,调用“mvn clean install”应该通过测试阶段(测试被执行......),因此应该调用exec-maven-plugin,它应该执行main方法。我对吗?

现在再次修改 pom.xml:

主要类:

和 JUnit 测试类:

0 投票
2 回答
17819 浏览

java - 如何使用 -e 开关从 Eclipse 运行 maven

是否可以使用带有 -e 开关的 exec-maven-plugin 执行 exec 目标?我得到一个MojoExecutionException.

0 投票
1 回答
1341 浏览

maven - 在命令行中批量创建域,但不是通过 exec maven 插件

我编写了一个包含 Glassfish 域创建序列的小文件,如下所示:

我通常通过 Glassfish asadmin multimode运行所有这些步骤。

当使用以下指令手动运行所有这些时

执行时间不到两分钟。

但是当使用以下 pom 配置通过 maven 运行它时

它在域启动时停滞不前,日志最后几行是

Process Explorer表明,对于由 exec maven 插件生成的所有进程,绝对没有 CPU 消耗。

此外,exec maven 插件创建的命令行是

这和我手动输入的完全一样。

那么......什么可能使该过程挂起?我能做些什么来解决这个问题?

[编辑]将 --verbose 标志添加到 start-domain 指令显示为进程挂起之前的最后一行:

如果有人知道在 JMX 之后要启动什么,以及什么可能阻止它启动,我认为它会帮助我修复那个奇怪的错误。

0 投票
3 回答
5033 浏览

maven-2 - Maven:使用 exec 插件复制目录

我正在使用 Maven 3.0.3。我在使用 Maven exec 插件将一个目录的内容复制到另一个目录时遇到问题。可悲的是,当我在我的 pom.xml 中包含这个插件时……</p>

它不工作。我收到以下错误...</p>

有谁知道如何修改我的插件配置以将一个目录的内容复制到另一个目录?谢谢, - 戴夫

0 投票
1 回答
2824 浏览

java - 如何在 Maven 构建过程中调用 ruby​​ 脚本?

编辑2:我发现了问题。<id>快速的答案是我新配置的执行缺少一个导致问题的原因。我会把这个问题留在这里,以防它帮助别人。

我有一个 ruby​​ 脚本,它生成我的一些 jUnit 源文件。

我正在尝试使用exec-maven-plugin在默认生命周期的 generate-sources 阶段调用此 ruby​​ 脚本。这是我添加到我的 POM 中以实现此目的的内容:

当我在netbeans()中执行“清理和构建主项目”时,这似乎有效clean install,但是当我运行项目时(process-classes org.codehaus.mojo:exec-maven-plugin:1.1.1:exec使用属性:)

运行失败,因为它试图ruby用作 exec.executable(正如我在 POM 中告诉它的那样)。

那么,我如何ruby临时使用(ruby supporting_files/ruby/CreateUnitTests.rb在运行 jUnit 测试之前运行),但在java其他情况下使用? 在 generate-test-sources 阶段调用脚本的“正确”方式是什么?

编辑:问题似乎不仅仅是改变正在调用的可执行文件......

我编写了一个快速的 java 程序,它只调用 ruby​​ 解释器,将它作为命令行参数接收(ruby 文件名)传递:

这使我可以避免更改 POM 中的可执行文件:

丑陋,我知道。但无论如何,清理/构建仍然可以按预期工作,但“运行”仍然失败!这是错误消息:

所以,它恢复运行java,但仍然失败。我注意到的一件奇怪的事情是它正在执行目标org.codehaus.mojo:exec-maven-plugin:1.1.1:exec,即使在 POM 中我告诉它使用版本1.2......

0 投票
0 回答
665 浏览

maven - 预集成测试失败后如何确保清理?

我正在尝试在 Maven (v2) 中设置集成测试以通过 Jenkins 执行。我在 maven POM 的预集成测试阶段提出了一个大型软件堆栈(通过 exec-maven-plugin)。不幸的是,这个启动有时会失败(显然我需要更多的测试),这会立即导致构建失败。问题是,堆栈在发生故障后并没有完全上升,也没有完全下降。我可以通过另一个调用 exec-maven-plugin 进行清理,但是 maven 构建会立即结束,所以我没有机会。

我依靠 maven-failsafe-plugin 来确保在任何测试失败时进行清理,但是当预集成测试失败时如何清理?