Maven依賴衝突解決 及 常見錯誤
阿新 • • 發佈:2018-12-30
Maven依賴衝突解決及常見錯誤
Web工程依賴 兩個不同的maven專案,依賴同一個artifactId但是版本不同,這時候就會產生maven的jar依賴衝突問題!
排除依賴
<dependencies>
<dependency>
<groupId>com.wangys</groupId>
<artifactId>wangys-service</artifactId>
<version>0.0.1-SNAPSHOT</version >
</dependency>
<dependency>
<groupId>com.wangys</groupId>
<artifactId>wangys-entity</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 加入exclusions排除依賴 -->
<exclusions >
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
常見maven錯誤
錯誤原因①:
pom.xml報錯:web.xml is missing and <failOnMissingWebXml> is set to true
解決辦法:
出現這個錯誤的原因是Maven不支援缺少web.xml的web專案
新增Web模組,對專案右鍵->Java EE Tools->Generate Deployment Descriptor Stub,
這樣就在src\main\webapp下面生成了WEB-INF資料夾和web.xml,問題解決。
web.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>project-web</display-name>
</web-app>
錯誤原因②:
'parent.relativePath' and 'parent.relativePath' points at wrong local POM @ line 4, column 10
解決辦法:
在應用parent工程中加上<relativePath>../wangys-parent/pom.xml</relativePath>
<parent>
<groupId>com.wangys</groupId>
<artifactId>wangys-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../wangys-parent/pom.xml</relativePath>
</parent>
錯誤原因③:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
解決辦法:
更換為自己本地的jdk即可。