2017-05-25 235 views
1

這是這些問題的一個後續:配置kapt處理Lombok的註釋

看來,既然kapt演變,現在它在Maven中甚至支持。我想這(注意在配置的龍目島的註解處理器):

 <plugin> 
      <groupId>org.jetbrains.kotlin</groupId> 
      <artifactId>kotlin-maven-plugin</artifactId> 
      <version>${kotlin.version}</version> 
      <executions> 
       <execution> 
        <id>kapt</id> 
        <goals> 
         <goal>kapt</goal> 
        </goals> 
        <configuration> 
         <sourceDirs> 
          <sourceDir>${project.basedir}/src/main/java</sourceDir> 
          <sourceDir>${project.basedir}/src/main/kotlin</sourceDir> 
         </sourceDirs> 
         <annotationProcessors> 
          <annotationProcessor>lombok.core.AnnotationProcessor</annotationProcessor> 
         </annotationProcessors> 
        </configuration> 
       </execution> 
       ... 
     </plugin> 

但似乎仍然沒有效果,即在相關問題說明的龍目島@Getter是被忽略。

有什麼可以做的嗎?

回答

1

所以,如果你希望在科特林類使用Lombok的註釋,這應該工作:

<execution> 
    <id>kapt</id> 
    <goals> 
     <goal>kapt</goal> 
    </goals> 
    <configuration> 
     <sourceDirs> 
      <sourceDir>src/main/kotlin</sourceDir> 
      <sourceDir>src/main/java</sourceDir> 
     </sourceDirs> 
     <annotationProcessors> 
      <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor> 
     </annotationProcessors> 
     <annotationProcessorPaths> 
      <annotationProcessorPath> 
       <groupId>org.projectlombok</groupId> 
       <artifactId>lombok</artifactId> 
       <version>${lombok.version}</version> 
      </annotationProcessorPath> 
     </annotationProcessorPaths> 
    </configuration> 
</execution> 

如果您需要在科特林代碼中使用龍目類,你需要使用delombok:

<plugin> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok-maven-plugin</artifactId> 
    <version>${lombok.version}.0</version> 
    <executions> 
     <execution> 
      <id>delombok</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>delombok</goal> 
      </goals> 
      <configuration> 
       <formatPreferences> 
        <javaLangAsFQN>skip</javaLangAsFQN> 
       </formatPreferences> 
       <verbose>true</verbose> 
      </configuration> 
     </execution> 
     <execution> 
      <id>test-delombok</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
       <goal>testDelombok</goal> 
      </goals> 
      <configuration> 
       <verbose>true</verbose> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

在這種情況下,你根本不需要kapt。對我來說就像一個魅力。

+0

不幸的是,它並沒有幫助。在'mvn compile'以及IntelliJ Idea中也是一樣。 :/ –

+0

所以,如果你正在嘗試在kotlin類上使用lombok註釋 - 這個東西應該可以工作。如果你正在嘗試將龍捲風課程導入kt - 你必須去delombok。我已經更新了兩種情況下的答案。 –