`MANIFEST.MF` 中 Class-Path 引用 `storage-1.0-20131202.054649-56.jar`,但實際複製到 `lib/` 的是 `storage-1.0-SNAPSHOT.jar`,運行時 `ClassNotFoundException`。
`maven-jar-plugin` 生成清單時使用唯一時間戳版本,而 `maven-dependency-plugin:copy-dependencies` 默認複製文件系統中的文件名(可能為非唯一快照)。兩者版本解析策略不一致。
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase> <!-- 改為 package,確保 jar 已生成 -->
<goals><goal>copy-dependencies</goal></goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>runtime</includeScope>
<useProjectArtifact>true</useProjectArtifact> <!-- 包含項目自身 JAR -->
</configuration>
</execution>
</executions>
</plugin>
執行 `mvn dependency:tree -Dverbose` 查看實際解析的版本;檢查 `target/lib/` 下文件名與 `MANIFEST.MF` Class-Path 是否完全一致。
Maven 快照版本時間戳導致 MANIFEST Class-Path 與複製 JAR 文件名不匹配,uniqueVersion 配置,dependency-plugin phase 對齊,發布版本移除 SNAPSHOT。