【转】eclipse开发Groovy代码,与java集成,maven打包编译

今天尝试了一下在eclipse里面写Groovy代码,并且做到和Java代码相互调用,折腾了一下把过程记录下来。
首先需要给eclipse安装一下Groovy的插件,插件地址:https://github.com/groovy/groovy-eclipse/wiki 。
安装完插件以后,就可以创建Groovy Project和Groovy Class等。
创建一个Maven工程,最简单的那种:maven-archetype-quickstart
maven工程的java代码一般是这么放的
src/main/java/com.xxx.xxx
而我们的groovy的代码可以这么放,并把这个目录设置为classpath
src/main/groovy/com.xxx.xxx
写一个hello world程序,由于创建的工程不是Groovy Project,所以这个文件eclipse是不认识的,会报错,不过只需要引入Groovy的相关jar就可以识别了

class AppGroovy {

    static main(args) {
        def closure = { param -> println "hello ${param}" }
        closure("world")
    }
}

pmo.xml里面加入Groovy的引用

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-eclipse-compiler</artifactId>
    <version>2.9.2-01</version>
    <type>maven-plugin</type>
</dependency>
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-eclipse-batch</artifactId>
    <version>2.4.3-01</version>
</dependency>

再加入一个编译插件

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <compilerId>groovy-eclipse-compiler</compilerId>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>2.7.0-01</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

这样,上面那个Groovy类就可以被编译和识别了,mvn package就可以编译
运行方法:右键Groovy文件,Run As -> Groovy Sctipt
如果要嵌入Java类中也很简单,直接在java里面引用就好了

public class App {
    public static void main(String[] args) {
        AppGroovy.main(args);
    }
}

运行方法:右键Java文件,Run As -> Java Application

转载出处:https://www.cnblogs.com/rightmin/p/4945797.html

猜你喜欢

转载自blog.csdn.net/hundan_520520/article/details/81094507