gmaven 插件:如何在 pom.xml 中为外部 groovy 脚本设置 属性
gmaven plugin: how to set property in pom.xml for external groovy script
我是 运行 通过 pom.xml 中的 gmaven 插件的外部 groovy 脚本。
外部脚本是 'myscript.groovy'.
我想通过 maven pom.xml [即 parameters/arguments 向 myscript.groovy 提供一些 parameters/arguments在插件内部 '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' 属性 的值。
这方面的任何提示都会有用..谢谢
您可以通过两种方式绑定和检索属性。一种是通过插件特定的属性。
<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
一样将其包含在您的通话中
另一个选项是直接绑定到项目级属性。你会把它放在你的项目级属性或你的调用中,就像上面提到的那样,并且不要在插件 <configuration>
中包含 <properties>
。如果你走这条路,你将通过 project.properties['installation.dir']
在你的脚本中访问 GMaven 或 GMavenPlus(在这种情况下也为 GMavenPlus 取出 <bindPropertiesToSeparateVariables>
)。
如果这对您不起作用,请尝试将 installation.dir
重命名为 installationDir
。我不记得月经是否有问题。
我是 运行 通过 pom.xml 中的 gmaven 插件的外部 groovy 脚本。 外部脚本是 'myscript.groovy'.
我想通过 maven pom.xml [即 parameters/arguments 向 myscript.groovy 提供一些 parameters/arguments在插件内部 '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' 属性 的值。
这方面的任何提示都会有用..谢谢
您可以通过两种方式绑定和检索属性。一种是通过插件特定的属性。
<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
另一个选项是直接绑定到项目级属性。你会把它放在你的项目级属性或你的调用中,就像上面提到的那样,并且不要在插件 <configuration>
中包含 <properties>
。如果你走这条路,你将通过 project.properties['installation.dir']
在你的脚本中访问 GMaven 或 GMavenPlus(在这种情况下也为 GMavenPlus 取出 <bindPropertiesToSeparateVariables>
)。
如果这对您不起作用,请尝试将 installation.dir
重命名为 installationDir
。我不记得月经是否有问题。