gpt4 book ai didi

java - Maven exec 插件将参数传递给外部可执行文件

转载 作者:行者123 更新时间:2023-11-30 08:53:47 24 4
gpt4 key购买 nike

我正在尝试将我的应用配置为仅使用 mvn package exec:exec

我想要的是构建 .jar 并将其提交到外部二进制文件,我可以在 mvn package 之后手动执行此操作,但我希望它是自动的。我认为 maven exec 插件是正确的选择。

我当前的配置是:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>
/bin/spark-submit
</executable>
<arguments>
<argument>
--class "package.Class" --master "local[4]" ${project.build.directory}/${project.build.finalName}.${packaging}
</argument>
</arguments>
</configuration>
</plugin>

它执行的是什么(来自 maven DEBUG 信息):

/bin/spark-submit, --class "package.Class"--master "local[4]"myApp.jar

我认为问题在于参数要传递给 java 可执行文件,所以它们用逗号分隔,我在执行 shell 命令时不希望这样。

我尝试过的另一件事是拆分参数:

<arguments>
<argument>--class "package.Class"</argument>
<argument>--master "local[4]"</argument>
<argument>${project.build.directory}/${project.build.finalName}.${packaging}</argument>
</arguments>

执行:

/bin/spark-submit, --class "package.Class", --master "local[4]", myApp.jar

(更多逗号,也不是我想要的)

我想让maven执行:

/bin/spark-submit --class "package.Class" --master "local[4]" myApp.jar

我希望我想要的可以使用 maven exec 插件来完成,并且我的问题可以得到很好的理解。如果您能给我任何帮助,我将不胜感激。

最佳答案

我发现有一个可选的配置参数<commandlineArgs>这正是我需要的。

所以对我来说正确的配置是:

...
<configuration>
<executable>
/bin/spark-submit
</executable>
<commandlineArgs>
--class "package.Class" --master "local[4]" ${project.build.directory}/${project.build.finalName}.${packaging}
</commandlineArgs>
</configuration>
...

关于java - Maven exec 插件将参数传递给外部可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29671779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com