Groovy和java一起用,身心愉悦 但是当Groovy 和 Java相互依赖的时候,编译时会提示找不到类
这时候,可以使用这个方法
<!-- 支持groovy源码 需要将java文件夹改成groovy -->
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.5</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-ant</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>generateStubs</goal>
<goal>addSources</goal>
<!--<goal>addStubSources</goal>-->
<goal>compile</goal>
<goal>execute</goal>
</goals>
</execution>
</executions>
</plugin>
###<goal>generateStubs</goal> 加上这个就可以编译通过了
使用上面这个方法后,在target,目录下面会多出来一个generate-*的文件夹,这时候在idea里面,这个文件夹里面的类会和src下面的类重复,导致idea错误提示,你可以手动删除这个文件夹,IDEA就不会出现错误提示,但是每次删除手动删除都特别麻烦
这是,你可以用下面这个方法删除
rm -rf target/generated-*
把上面的这行放到一个sh里面,赋予可执行权限 然后在pom.xml中添加
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>clean-generated</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/../clean-generated.sh</executable>
</configuration>
</execution>
</executions>
</plugin>
这样在每次install之后,会自动执行这个删除命令,既能保证相互依赖编译通过,又能解决类重复问题
如果还有更好的方法,请大神赐教