在maven工程中使用groovy
在maven中使用groovy
Groovy由于轻便的语法,和java的无缝兼容,深受人们的喜爱。
使用ide,像eclipse、intellij idea都有专属的插件来编译和运行groovy,maven也有特定的plugin来支持groovy,只是需要配置一下。
Maven支持groovy的插件叫Gmaven。
需要在pom中引用:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
这里面包含了4个goal,分别用来将groovy源文件生成临时的、与之相对应的 Java 源文件,使得maven编译java文件时不会报错。
除了这些,官方说还需要引入一个runtime依赖:
<dependency>
<groupId>org.codehaus.groovy.maven.runtime</groupId>
<artifactId>gmaven-runtime-default</artifactId>
<version>1.0-rc-3</version>
</dependency>
工程结构:
Groovy插件默认编译groovy的路径在main/groovy下。
<project-root>/
|
+-pom.xml
|
+-src/
| |
| +- main/
| | |
| | +- groovy/(source location for Groovy and optional Java sources)
| | |
| +- test/
| | |
| | +- groovy/(source location for Groovy and optional Java test sources)
| | |
...
默认只有在main下的groovy和test下的groovy文件夹内的groovy文件才会被compile。
假如goovy文件中的package为test.groovy,那么就会在deploy/classes下建立一个test/groovy文件夹,里面放上编译好的class文件。
所有在main/groovy下的*.groovy文件都会被编译到target/classes目录下,所有在test/groovy下的*.groovy文件都会被编译到target/test-classes目录下。
如果groovy文件没有在main/groovy目录下,就需要配置gmaven插件了。
代码<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<sources>
<fileset>
<directory>${pom.basedir}/src/main/script</directory>
<includes>
<include>**/*.groovy</include>
</includes>
</fileset>
</sources>
</configuration>
</execution>
</executions>
</plugin>
像这样的话就会把main/script下的*.groovy文件包含进来进行编译。