![](/img/trans.png)
[英]Intellij IDEA + JBoss doesn't update LESS files on runtime compilation
[英]Maven: excluding files from compilation doesn't work in IntelliJ IDEA
我想暫時從編譯中排除某個目錄,所以我配置了 maven-compiler-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/foo/**/*.java</exclude>
</excludes>
</configuration>
</plugin>
從命令行和 Eclipse 一切正常,但在 IntelliJ IDEA 中,我在排除目錄中出現編譯錯誤。 知道什么可能導致問題嗎?
這是一個未解決的問題,請關注更新。
我在遷移 maven 項目時遇到了同樣的問題。 我通過選擇以下選項使其工作:
文件 > 設置 > 構建、執行、部署 > 構建工具 > Maven > Runner
選中“將 IDE 構建/運行操作委托給 Maven”選項。
此處提供說明: IntelliJ 文檔
我在嘗試解決 IntelliJ IDEA 中的 Java 9 模塊信息編譯時發現了這個問題。
我希望我的庫使用 Java 8 編譯,但同時我希望它具有模塊信息(只能使用 JDK 9+ 編譯)。 Maven 建議的此問題的解決方案:從使用 JDK 8 的編譯中排除 module-info,如果使用 JDK 9,則包括。 它適用於命令行,但 IDEA 無法編譯此類項目。 可以通過將模塊信息添加到排除來調整 IDEA 編譯配置,但我想要更清晰的解決方案。
可以通過添加帶有源目錄擴展列表的 Maven Profile 來欺騙 IDEA:
<profile>
<!-- This profile enables two pass compilation:
1. Compile all sources with Java 9 target version (including module-info.java)
2. Recompile all sources with Java 8 target version, but module-info.java
After this all classes will have Java 8 bytecode (version 52), while
module-info.class will have Java 9 bytecode (version 53) -->
<id>J9-module</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>8</release>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
<configuration>
<compileSourceRoots>
<sourceRoot>${project.basedir}/src/main/java</sourceRoot>
<sourceRoot>${project.basedir}/src/main/java9</sourceRoot>
</compileSourceRoots>
<release>9</release>
</configuration>
</execution>
<execution>
<id>java-8-recompile</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
使用上面顯示的配置文件,IDEA 本身將只編譯標准src/main/java
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.