1. 程式人生 > >Maven依賴衝突解決 及 常見錯誤

Maven依賴衝突解決 及 常見錯誤

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即可。