簡體   English   中英

設置Maven POM以便在Intellij IDEA中編譯Java / Groovy混合代碼的正確方法

[英]Correct way to set up a Maven POM to compile mixed Java/Groovy code in Intellij IDEA

我在Intellij IDEA中有一個非常簡單的測試項目,在該項目中我嘗試將Java 9和Groovy代碼混合在一起。 另外,該項目具有Maven支持 ,即根據Maven原型進行組織並具有POM。

現在,我在默認包中有兩個類可以互相調用(盡管不會周期性地編譯失敗​​),並且都運行良好,即Build> Build ProjectRun> Run'Main'正在運行。

但是,此編譯似乎獨立於Maven配置。 POM不支持Groovy。 如果我只是使用mvn compile從命令行進行mvn compile編譯將失敗,因為鏈接器無法找到Groovy編譯會導致的任何對象。

POM僅包含用於maven-compiler-plugin ,我手動添加了將configuration下的source節點和target節點設置為1.9以使IDEA從Java 9編譯到Java 9,而不是從Java 5編譯到IDEA。因此存在一些交互選擇Rebuild Project時,在POM中的內容和IDEA的內容之間。

什么是配置IDEA和/或配置POM的正確方法,以便在IDEA和命令行中都可以成功進行編譯。 而且,如果有人知道,POM和IDEA之間的交互作用是什么?

我必須在POM中配置Groovy Eclipse Maven插件嗎? (我會盡力做到這一點)

這就是我為Java 8和Eclipse工作的項目,同時具有Java和Groovy代碼。 我知道我曾經通過Google找到了這個基礎,但是沒有保存URL,可惜。 不確定是否可以與Java 9和IntelliJ一起使用,但是值得一試嗎?

<properties>
  <groovy.eclipse.compiler.plugin.version>2.9.1-01</groovy.eclipse.compiler.plugin.version>
</properties>
....
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>

  <!-- 2.8.0-01 and later require maven-compiler-plugin 3.1 or higher -->
  <configuration>
    <compilerId>groovy-eclipse-compiler</compilerId>
    <!-- set verbose to be true if you want lots of uninteresting messages -->
    <!-- <verbose>true</verbose> -->
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-eclipse-compiler</artifactId>
      <version>${groovy.eclipse.compiler.plugin.version}</version>
    </dependency>
    <!-- for 2.8.0-01 and later you must have an explicit dependency on groovy-eclipse-batch -->
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-eclipse-batch</artifactId>
      <version>2.3.7-01</version>
    </dependency>
  </dependencies>
</plugin>
<plugin>
  <groupId>org.codehaus.groovy</groupId>
  <artifactId>groovy-eclipse-compiler</artifactId>
  <version>${groovy.eclipse.compiler.plugin.version}</version>
  <extensions>true</extensions>  <!-- required to get plugin to compile tests when no src/main/java dir exists -->
</plugin>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM