Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.ast.Expression
JSP 編譯需 JDT 編譯器,類缺失導致 JSP 無法編譯。
Maven 本地倉庫 ~/.m2 殘留舊版 Jetty/JSP 相關 JAR(如 jetty-jsp-2.1、org.eclipse.jdt.core),版本不一致導致類加載失敗。pom.xml 中聲明 jetty.version=6.1.26 但實際解析到混合版本。
rm -rf ~/.m2/repository/org/mortbay/jetty
rm -rf ~/.m2/repository/org/eclipse/jdtmvn clean compile dependency:purge-local-repository -DreResolve=trueJetty 6.x 已極老(2012 年),若非維護舊專案,**強烈建議升級 Jetty 9/10/11 或遷移至 Spring Boot 內嵌 Tomcat/Jetty**。若必須用 Jetty 6,鎖定版本:
<properties>
<jetty.version>6.1.26</jetty.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1-jetty</artifactId>
<version>${jetty.version}</version>
</dependency>
<!-- 移除 glassfish 相關,避免衝突 -->
</dependencies>