gpt4 book ai didi

maven - gmaven 插件 : how to set property in pom. 用于外部 groovy 脚本的 xml

转载 作者:行者123 更新时间:2023-12-04 18:39:18 24 4
gpt4 key购买 nike

我正在通过 pom.xml 中的 gmaven 插件运行外部 groovy 脚本。
外部脚本是“myscript.groovy”。

我想通过 maven pom.xml 向 myscript.groovy 提供一些参数/参数 [即在插件“gmaven-plugin”执行中];但不能这样做..

我试过使用 in ;但不确定如何在 groovy 脚本中检索其值。简单地调用 properties.get 并没有给出属性值。

pom文件截图:

<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>generate-resources-execute-groovyscript</id>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<properties>
<property>
<name>installation.dir</name>
<value>${installation.dir}</value>
</property>
</properties>
<source>${pom.basedir}/src/main/groovy/configure.groovy</source>
</configuration>
</execution>
</executions>
</plugin>

不确定如何在“configure.groovy”脚本中检索“installation.dir”属性的值。

这方面的任何提示都会很有用..谢谢

最佳答案

有两种方法可以绑定(bind)和检索属性。一种是通过插件特定的属性。

<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>generate-resources-execute-groovyscript</id>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<properties>
<installation.dir>${installation.dir}</installation.dir>
</properties>
<source>${pom.basedir}/src/main/groovy/configure.groovy</source>
</configuration>
</execution>
</executions>
</plugin>

这些将在脚本中检索,如 project.properties['installation.dir'] .

GMaven 不再维护(我是最后一个维护者)。如果您想使用高于 2.0.0 的 Groovy 版本,请查看 GMavenPlus .这是等效的 POM:
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>execute</goal>
</goals>
<phase>generate-resources</phase>
</execution>
</executions>
<configuration>
<bindPropertiesToSeparateVariables>false</bindPropertiesToSeparateVariables>
<properties>
<property>
<name>installation.dir</name>
<value>${installation.dir}</value>
</property>
</properties>
<scripts>
<script>file:///${pom.basedir}/src/main/groovy/configure.groovy</script>
</scripts>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>

在这种情况下,检索就像 properties['installation.dir'] .我知道 file:///很烦人。我在下一个版本中删除了这个要求。

对于 GMaven 或 GMavenPlus,如果您选择插件属性方法,您将需要在其他地方设置值,或者在您的项目 POM 中使用类似这样的东西
<properties>
<installation.dir>C:\someDir</installation.dir>
</properties>

或将其包含在您的通话中,例如 mvn -Dinstallation.dir=C:\someDir
另一种选择是直接绑定(bind)到项目级别的属性。您可以将它放在您的项目级别属性或调用中,如上所述,并且不包括 <properties>在插件 <configuration> .如果你走这条路,你可以通过 project.properties['installation.dir'] 在你的脚本中访问。对于 GMaven 或 GMavenPlus(在这种情况下,也为 GMavenPlus 取出 <bindPropertiesToSeparateVariables>)。

如果这对您不起作用,请尝试重命名 installation.dir类似于 installationDir .如果月经有问题,我不记得了。

关于maven - gmaven 插件 : how to set property in pom. 用于外部 groovy 脚本的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30051201/

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