maven增加原始檔目錄時報錯解決辦法(已試有效)
報錯如下:
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (execution: default-testCompile, phase: test-compile)
究其原因是因為基於maven的專案多使用各種maven plugin來完成開發中的一些工作,例如編譯程式碼,打包,部署等,每個plugin包含許多的goal,用來做特定的事情。例如 clean compile test package deploy等。除了這些比較常見的goal之外,專案中還可以使用大量的第三方的plugin,甚至自己動手開發的plugin。隨之而來的問題是,在eclipse中編輯maven專案的時候,eclipse並不知道這些特殊用途的goal要做什麼。所以m2eclipse這個整合maven到eclipse的plugin就提供了開發extra的能力,eclipse利用這些extra來完成本來在maven plugin要乾的活。如果eclipse沒有辦法知道某個goal要幹什麼,那麼就會看到這個錯誤資訊。
解決辦法之一:
在StackOverFlow中一個帖子說在pom.xml中在報錯的plugin的外面再包上一層<pluginManagement></pluginManagement> 如下:
<build> <pluginManagement> <plugins> <plugin> ... </plugin> <plugin> ... </plugin> .... </plugins> </pluginManagement> </build>
解決辦法二: pluginManagement的作用是作為公用的外掛配置項,給子專案共用的。如果這個專案沒有子專案,這樣做就不合理了或者有時候父專案pom不能被修改,也就沒辦法新增pluginManagement。這時候就可以採用第二種方案:在Eclipse中Window->Perferences->Maven->Lifecycle Mapping選項卡中點選Open workspace lifecycle mappings metadata,在打卡的xml中新增如下內容並儲存:
<?xml version="1.0" encoding="UTF-8"?> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>sql-maven-plugin</artifactId> <goals> <goal>execute</goal> </goals> <versionRange>[1.4,)</versionRange> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata>
將groupId和artifactId及versionRange根據具體的外掛進行修改,儲存之後記得點選 ”Reload workspace lifecycle mappings metadata“按鈕