问题标签 [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.
maven - 使用带有参数的 Maven 'exec:exec'
我有一个项目配置为使用 Maven 构建和运行。该项目依赖于平台特定的本机库,我正在使用此处找到的策略来管理这些依赖项。
本质上,特定平台的.dll
or文件被打包到一个 jar 中,并通过识别目标平台的分类器推送到 Maven 服务器。.so
然后 maven-dependency-plugin 解包平台特定的 jar,并将本机库复制到目标文件夹。
通常我会mvn exec:java
用来运行 Java 程序,但exec:java
在与 Maven 相同的 JVM 中运行应用程序,这会阻止我修改类路径。由于必须将本机依赖项添加到类路径中,因此我被迫mvn exec:exec
改用。这是 pom 的相关片段:
这适用于应用程序的默认配置,但我希望能够在命令行中指定一些可选参数。理想情况下,我想做这样的事情:
不幸的是,指定exec.args
变量会覆盖我在 pom 中的参数(设置类路径和运行应用程序所需的参数)。有没有解决的办法?在命令行指定一些可选参数而不覆盖我在 pom 中的内容的最佳方法是什么?
maven - 从maven中的相对路径获取完整路径
我正在使用 exec-maven-plugin 来执行一个非 java 文件并将另一个文件作为参数传递。我需要能够使用位于${basedir} 目录之上的完整路径。如何在不使用完整路径的情况下访问这样的目录?
使用以下代码不起作用并输出以下 cmd 参数-
作为命令行参数,这当然毫无意义。有任何想法吗?
java - Maven exec插件 - 硬编码参数后来自控制台的用户参数
我正在实现一个简单的 RMI 服务器和客户端。我想加快每次添加服务器代码库的繁琐任务(大量终端膨胀的文本),所以我决定使用 maven exec 插件。这是我pom.xml
现在的一部分外观:
mvn exec:exec
当我在控制台中运行时,一切都很好。当我想让用户指定 rmiregistry 端口作为程序的参数时,就会出现问题。基本上,除了 POM 文件中指定的参数之外,我还想从控制台添加额外的参数。在从控制台指定新参数时,我发现的所有解决方案都覆盖了硬编码的参数,这是不可取的。有可能以某种方式做到这一点吗?
java - Maven 从 Netbeans 运行子模块
我想用 Maven 构建一个应用程序。目前我有以下设置:
- 两个项目;项目 A 和项目 B。
- 项目 B 依赖于 A(在 pom 中有依赖标签)。
- 主类在项目 B 中。
我已将所有内容都包含在 Netbeans 中。现在,当我在项目 A 中更改某些内容时,我只想点击运行按钮,它应该编译所需的所有内容并启动 proectB 中的主要方法。
我尝试使用父项目并将其用作 Netbeans 中的主项目:
Reactor 插件现在检查项目中的更改并在需要时编译它们。但是 exec-maven-plugin 在这里不起作用,必须放在项目 B 中。但是当我这样做时,我需要再次运行项目 B。
如果我将项目 B 设置为主项目并点击运行按钮,Netbeans 不会意识到它需要重新编译项目 A,如果有更改。
我怎样才能使这项工作?
java - 在 Maven 构建期间使用 Exec Plugin 连接到数据库
在使用特定配置文件时,我正在使用 Exec Maven 插件来运行主要方法。例如:
在这种方法中,我希望能够使用我的应用程序代码运行对我的数据库执行操作的代码,但是此时数据库未连接。我通常使用 spring 来注入一些服务类的资源,但这也是不可能的,因为main()
它是静态的。有什么方法可以加载我的 applicationContexts 并让我的应用程序通过 maven 构建和运行程序吗?
maven - 如何使用 maven exec 运行 asadmin deploy
我正在使用 Mac OS 10.5.8 和 Maven 3.0.3。
如果我从命令行运行此命令,它可以工作:
但是,如果我尝试使用 Maven Exec Plugin ( ) 执行相同的命令mvn exec:exec
,使用以下配置:
它失败了:
CLI019 操作数数量无效。操作数的数量应等于 1。
但就在它失败之前,它记录了这一行:
[调试] 执行命令行: asadmin deploy --user admin --type ejb --libraries pedra-signon-ejb-1.0.jar target/my-ejb-1.0.jar
这与我手动执行的命令相同。
如何使用 Maven Exec 插件执行此命令?
如果我删除<argument>deploy</argument>
并更改<executable>asadmin</executable>
为<executable>asadmin deploy</executable>
maven 失败并显示“asadmin deploy: not found”。
maven - exec-maven-plugin starts not in the right phase
I want to start a server in pre-integration-phase and do some integration tests. Problem is that it only starts after the integration tests.
My pom looks like this:
and my Test is a jUnit-Case named TestMyServerIT
located in src/test/main looks like this:
}
which fails with a connection denied if try mvn verify.
But it succeeds when I have a server running.
If I comment the test out, there is a server running on port 1024 after "mvn verify" since I don't stop it yet in the pom file. And I can access it on this port just fine, just not in time for the tests.
How can I assert the server is started before my tests?
It seems I have another problem I need to solve first. Failsafe-plugin is not starting on verify and says it is missing its xml if I try failsafe:verify
process - 以 exec-maven-plugin 块开始的进程 mvn verify
我正在使用这样的 exec-maven-plugin 启动服务器:
问题是在执行服务器进程后它会停在那里。似乎该进程正在阻止其他进程,尽管它在 exec-maven-plugin 页面上显示“exec:exec 在单独的进程中执行程序和 Java 程序”。
有什么我可以做的吗?我看到由 exec-maven-plugin 生成的进程阻止了 maven 进程,而Maven 和 Exec: forking a process? . 这个问题是否有独立于平台的解决方案?
我还有一个额外的问题:再次通过 exec-maven-plugin 关闭应用程序 startet 的最佳方法是什么?
java - 使用 Exec Maven 插件分叉 Java,而不使用 `exec` 目标
从文档中:
exec:exec
在单独的进程中执行程序和 Java 程序。exec:java
在同一个 VM 中执行 Java 程序。
我想分叉一个java程序。我已经让它工作了,exec:java
但这并没有分叉。因此,显而易见的举措是将目标更改为exec
. 问题是, forexec
的语法与java
. 它没有像includeProjectDependencies
,includePluginDependencies
等标签。有没有一个我可以使用的插件就像 #1 在它分叉的意义上说,但有像 #2 这样的方便语法?IMO,#2 应该只有一个<fork>true</fork>
配置。
maven - 只有在上次构建后文件更改时,我才能运行 maven 插件吗?
我们在准备资源阶段使用 maven-exec-plugin 创建二进制文件,然后将其打包到 jar 中。Exec 启动读取 excel 表并创建 sqlite db 的脚本。
现在脚本总是运行,即使我没有运行干净。如何配置插件,使其仅在以下情况下运行:
输出文件不存在。
或输出文件存在,但最后修改日期早于源文件。