我正在实现一个简单的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时,这是不合需要的。有可能以某种方式这样做吗?
答案 0 :(得分:3)
这是一种扭曲的解决方法,但我想不出任何其他方式来实现你想要的
使用附加参数的默认值
在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.argument.from.console = value.you.want