gpt4 book ai didi

java - Maven exec 插件-硬编码参数后来自控制台的用户参数

转载 作者:搜寻专家 更新时间:2023-11-01 03:08:07 27 4
gpt4 key购买 nike

我正在实现一个简单的 RMI 服务器和客户端。我想加快每次添加服务器代码库的繁琐任务(大量终端膨胀文本),所以我决定使用 maven exec 插件。下面是我的 pom.xml 的一部分现在的样子:

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<argument>/media/files/EclipseWorkspace/JavaSE/rozprochy/lab2/RmiServer/target/classes</argument>
<argument>-Djava.rmi.server.codebase=file:/media/files/EclipseWorkspace/JavaSE/rozprochy/lab2/RmiServer/target/classes/</argument>
<argument>engine.ComputeEngine</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>

当我在控制台中运行 mvn exec:exec 时一切正常。当我想让用户指定 rmiregistry 端口作为程序的参数时,问题就出现了。基本上,除了 POM 文件中指定的参数之外,我还想从控制台添加额外的参数。当从控制台指定新的 args 时,我发现的所有解决方案都覆盖了硬编码的 args,这是不可取的。有可能以某种方式做到这一点吗?

最佳答案

这是一种扭曲的解决方法,但我想不出任何其他方法来实现您想要的

在您的 pom 中定义一个属性,并为您的附加参数设置默认值

<properties>
<extra.argument.from.console>extra.argument.from.console.default.value</extra.argument.from.console>
</properties>

在你的执行中添加该属性作为参数

<argument>${extra.argument.from.console}</argument>

如果您不想使用默认值,则在调用 Maven 时为该属性赋值

mvn exec:exec -Dextra.ar​​gument.from.console=value.you.want

关于java - Maven exec 插件-硬编码参数后来自控制台的用户参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591240/

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