我正在開發一個專案,我們希望plexus-compiler-eclipse在 Jenkins 管道期間使用該插件來檢查 Eclipse 編譯器生成的警告數量是否增加。我們仍然希望javac在正常的構建和測驗階段使用編譯器,所以我試圖創建一個 maven 組態檔,我們可以在使用 Eclipse 編譯器的警告階段運行。
當我在我們的代碼上運行 Eclipse 編譯器時,我收到一個關于缺少 JAXB 依賴項的編譯錯誤。我知道這是由于我們從 Java 1.8 轉向 Java 11,但是在使用javac編譯器構建時我們沒有收到此錯誤。我曾嘗試將jakarta.xml.bind-api依賴項添加到maven-compiler-plugin,但這無濟于事,添加org.glassfish.jaxb依賴項或javax.xml.bind:jaxb-api依賴項也無濟于事。
我無法共享完整的 pom,因為該專案是專有的,但我正在構建的組態檔如下所示:
<profile>
<id>eclipse-compile</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1></version>
<configuration>
<compilerId>eclipse</compilerId>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArguments>
<properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
</compilerArguments>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.8.8</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>3.25.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
我將嘗試的各種 JAXB 依賴項<dependencies>放在org.eclipse.jdt條目下的部分中。
其他人遇到過這種情況或知道該怎么做嗎?
uj5u.com熱心網友回復:
該問題源于在 Java 11 中運行的 Maven 構建,但我們的正常編譯階段分叉到 Java 1.8 可執行檔案。由于 Plexus 編譯器無法 fork 到新環境,因此無法訪問 Java EE 依賴項。我們只需要在編譯時更新我們的整個專案以與 Java 11 兼容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382283.html
