在Maven中使用Groovy进行简单化

时间:2018-12-29 15:22:30

标签: maven groovy

在一些Maven项目中,我将尝试弄清楚如何使用Groovy语言。例如,我尝试使用类似的方法在验证阶段创建目录

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<dependencies>
   ...
   <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.5.5</version>
        <type>pom</type>
        <scope>runtime</scope>
    </dependency>
   ...
 </dependencies>
 <build>    
    <plugins>
        <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>groovy-maven-plugin</artifactId>
            <version>2.0</version>
            <executions>
                <execution>
                    <id>Project</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <source>
                    final FileTreeBuilder treeBuilder = new FileTreeBuilder(new File('tree'))
                    def folder = new File( 'sample_dir' )
                    if(!folder.exists()){
                        treeBuilder.dir('sample_dir')
                    }
                </source>
            </configuration>
        </plugin>
        ...
     </plugins>
</build>

但是如果使用命令 mvn compile 将出现错误

[ERROR] script1.groovy: 3: unable to resolve class FileTreeBuilder

我错过了什么,应该添加什么才能使该插件正常工作?

1 个答案:

答案 0 :(得分:1)

https://groovy.github.io/gmaven/groovy-maven-plugin/

自定义Groovy版本

要自定义插件将使用的Groovy版本,请在项目中的插件定义上覆盖org.codehaus.groovy:groovy-all依赖项。

例如,使用Groovy 2.0.6代替默认值:

<plugin>
  <groupId>org.codehaus.gmaven</groupId>
  <artifactId>groovy-maven-plugin</artifactId>
  <dependencies>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.0.6</version>
    </dependency>
  </dependencies>
</plugin>