我正在使用exec插件从maven调用shell脚本,并希望将arg传递给我的maven命令,该命令将转发到shell脚本。所以如果我这样做
mvn exec:exec compile -Dfoo=bar
我希望能够使用$foo
在我的shell脚本中访问foo。我已经尝试使用${env.foo}
和${foo}
将它作为参数传递给pom.xml中的shell脚本,但我总是在shell脚本中使用那些确切的文字而不是“bar” ,foo也应该扩大。
我的pom.xml就像
<build>
<plugins>
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>asdf</groupId>
<version>1</version>
<executions>
<execution>
<id>asdf</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>bash</executable>
<commandlineArgs>myscript.sh ${env.foo}</commandlineArgs>
</configuration>
</plugin>
</plugins>
</build>
答案 0 :(得分:1)
您可以使用arguments
或commandlineArgs
配置。
关键是你必须为foo
提供一个值:
-Dfoo=bar
<properties><foo>bar</foo></properties>
例如:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<executable>bash</executable>
<arguments>
<argument>myscript.sh</argument>
<argument>${foo}</argument>
</arguments>
</configuration>
</plugin>
然后跑......
mvn exec:exec -Dfoo=bar
...将导致myscript.sh
使用一个参数运行:foo
。
注意:您问题中的插件配置看起来不正确。特别; groupId
(&#34; asdf&#34;)和version
(1)。