新建 Maven 專案後,POM 檔紅色報錯:
Plugin org.apache.maven.plugins:maven-surefire-plugin:2.12.4 or one of its dependencies could not be resolved

Maven 從中央倉庫下載依賴時,若網路中斷或伺服器異常,會在本地倉庫留下 .lastUpdated 殘留檔案。Maven 後續嘗試解析依賴時,檢測到此檔案會誤以為「已嘗試下載但失敗」,直接報錯而不再嘗試重新下載。
~/.m2/repository (Windows: C:\Users\用戶名\.m2\repository)org\apache\maven\plugins\maven-surefire-plugin\2.12.4\
.lastUpdated 檔案:
maven-surefire-plugin-2.12.4.pom.lastUpdated maven-surefire-plugin-2.12.4.jar.lastUpdated ... (所有 .lastUpdated 結尾檔案)
@echo off
echo 正在清理本地倉庫 .lastUpdated 檔案...
for /r "%USERPROFILE%\.m2\repository" %%f in (*.lastUpdated) do (
del "%%f"
echo 已刪除: %%f
)
echo 清理完成!
pause
#!/bin/bash REPO_DIR="$HOME/.m2/repository" echo "正在清理 $REPO_DIR 下的 .lastUpdated 檔案..." find "$REPO_DIR" -name "*.lastUpdated" -type f -delete -print echo "清理完成!"
現象:POM 加入 log4j:log4j:1.2.17 後報錯缺少 javax.jms、com.sun.jdmk、com.sun.jmx 等依賴。
原因:Log4j 1.2.15 起引入了 JMS/JMX 等可選依賴,但這些依賴不在中央倉庫 (授權問題),Maven 無法自動下載。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<exclusions>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<!-- SLF4J API -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.9</version>
</dependency>
<!-- Logback 實作 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.11</version>
</dependency>
mvn dependency:purge-local-repository 定期清理mvn dependency:tree / analyze 定期檢查依賴健康度settings.xml 與 dependencyManagement