Groovy 和 Java,相互依赖,混合编译 出现类重复 Maven解决办法

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之后,会自动执行这个删除命令,既能保证相互依赖编译通过,又能解决类重复问题

如果还有更好的方法,请大神赐教

转载于:https://my.oschina.net/razox/blog/846123

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值