Maven編譯時找不到StringUtils類
今天在Jersey的官網,執行命令如下命令:
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.21
產生Jersey程式碼時,出現了下面的錯誤:
[INFO] BUILD FAILURE
[INFO] ————————————————————————
[INFO] Total time: 0.626 s
[INFO] Finished at: 2015-09-21T20:33:50+08:00
[INFO] Final Memory: 10M/155M
[INFO] ————————————————————————
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4:generate (default-cli) on project standalone-pom: Execution default-cli of goal org.apache.maven.plugins:maven-archet
ype-plugin:2.4:generate failed: A required class was missing while executing org.apache.maven.plugins:maven-archetype-plugin:2.4:generate: org/apache/commons/lang/StringUtils
…
問題原因分析:從錯 誤資訊可以看出,執行maven-archetype-plugin外掛時找不到commons-lang的StringUtils類。通過檢視 maven本地倉庫maven-archetype-plugin-2.4.pom檔案,發現沒有配置commons-lang包的依賴,因此配置如下的 依賴:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>
重新執行上面的命令,OK。