Groovy 和 Java 聯合開發環境搭建

Groovy 和 Java 聯合開發環境搭建

1. 在主 pom 的 properties 中加上 <groovy.version>2.5.2</groovy.version> 用來覆蓋 spring boot 自帶的 groovy 版本

2. 在主 pom 中的 build > plugins 部分加上交叉編譯插件

               <plugin>

                   <artifactId>maven-compiler-plugin</artifactId>

                   <version>3.7.0</version>

                   <configuration>

                       <source>${java.version}</source>

                       <target>${java.version}</target>

                       <encoding>${project.build.sourceEncoding}</encoding>

                       <compilerId>groovy-eclipse-compiler</compilerId>

                       <verbose>true</verbose>

                       <fork>true</fork>

                       <compilerArguments>

                           <javaAgentClass>lombok.launch.Agent</javaAgentClass>

                       </compilerArguments>

                   </configuration>

                   <dependencies>

                       <dependency>

                           <groupId>org.codehaus.groovy</groupId>

                           <artifactId>groovy-eclipse-compiler</artifactId>

                           <version>3.0.0-01</version>

                       </dependency>

                       <dependency>

                           <groupId>org.codehaus.groovy</groupId>

                           <artifactId>groovy-eclipse-batch</artifactId>

                           <version>2.5.2-01</version>

                       </dependency>

                       <dependency>

                           <groupId>org.projectlombok</groupId>

                           <artifactId>lombok</artifactId>

                           <version>1.18.2</version>

                       </dependency>

                   </dependencies>

               </plugin>

 

3. 在 start 對應的 pom 中的 build 部分加上

  <plugin>

               <artifactId>maven-compiler-plugin</artifactId>

           </plugin>

 

4. 這樣就可以在項目中同時使用 Groovy 和 Java 開發了,直接在 src/main/java 下面建立 groovy 類即可,當然也可以在 src/main/groovy 下建立

 

錯誤解決:

1. 使用命令行 mvn clean install -Dmaven.test.skip=true -X 編譯,如果報類似於下面的編譯失敗,則在對應的 pom 中添加對應包的依賴:

如:

 <dependency>

           <groupId>org.hamcrest</groupId>

           <artifactId>hamcrest-all</artifactId>

           <version>1.3<version>

       </dependency>

ERROR in /Users/leiting.hlt/iwant-tmsx/iwant-tmsx-service/src/main/java/com/cainiao/iwant/tmsx/service/impl/TmsxOrderServiceImpl.java (at line 1)

       package com.cainiao.iwant.tmsx.service.impl;

       ^

The type org.hamcrest.Matcher cannot be resolved. It is indirectly referenced from required .class files

 

2. 如果用 IDEA 直接運行報類似下面的錯誤,就需要改變 spring boot 自帶的 groovy 版本,不要通過依賴管理覆蓋 groovy 版本, 使用 groovy.version 在 properties 中配置覆蓋 spring boot 自帶的 groovy 版本即可

如:

<properties>

       <groovy.version>2.5.2</groovy.version>

   </properties>

 

Information:Groovyc: While compiling iwant-tmsx-start:java.lang.NoClassDefFoundError: org/codehaus/groovy/ast/MethodCallTransformation needed for org.codehaus.groovy.macro.transform.MacroTransformation

at org.jetbrains.jps.incremental.groovy.JointCompilationClassLoader._defineClass(JointCompilationClassLoader.java:41)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章