[英]Conflict between maven managed dependency and declared one with different names
我正在運行一個Websphere 7項目。 Pom結構如下:
<parent>
<groupId>company</groupId>
<artifactId>websphere-superpom</artifactId>
<version>version</version>
</parent>
<dependencies>
...
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.5</version>
</dependency>
</dependencies>
...
<dependencies>
...
<dependency>
<groupId>com.ibm.websphere</groupId>
<artifactId>runtime-dependencies</artifactId>
<version>version</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencies>
...
<dependency>
<groupId>com.ibm.websphere</groupId>
<artifactId>j2ee</artifactId>
<version>version</version>
</dependency>
</dependencies>
Artifact j2ee包含幾個軟件包,其中還有javax.el
,它在我在項目的pom中聲明的那個軟件包之前被加載。
我使用選項-verbose:class
運行JUnit測試,並且輸出確認了此問題。
[Loaded javax.el.ExpressionFactory from file:/C:/Program Files (x86)/IBM/SDP/runtimes/base_v7/lib/j2ee.jar]
然后,我在Maven控制台中運行以下命令:
mvn dependency:analyze -DcheckDuplicateClasses
我得到的輸出是這樣的:
[WARNING] Unused declared dependencies found:
...
[WARNING] javax.el:javax.el-api:jar:2.2.5:compile
...
如何告訴Maven從我在項目的pom中聲明的庫中加載ExpressionFactory? 我無法更改websphere-superpom,因為它是公司管理的工件。
編輯:按照watery的要求,我嘗試在項目的pom中重新聲明有問題的依賴項,如下所示:
<dependency>
<groupId>com.ibm.websphere</groupId>
<artifactId>runtime-dependencies</artifactId>
<version>version</version>
<exclusions>
<exclusion>
<groupId>com.ibm.websphere</groupId>
<artifactId>j2ee</artifactId>
</exclusion>
</exclusions>
</dependency>
但是后來Maven告訴我:
Could not resolve dependencies for project ....: Failure to find com.ibm.websphere:runtime-dependencies:jar in nexus url
如果可以修改父級依賴項,則可以使用maven排除項 。
在websphere-superpom中:
<dependency>
<groupId>com.ibm.websphere</groupId>
<artifactId>runtime-dependencies</artifactId>
<version>version</version>
<type>pom</type>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
</exclusion>
</exclusions>
</dependency>
編輯:
如果您使用watery的建議,請不要忘記按提供的那樣設置此運行時依賴項的范圍。 因為現在Maven嘗試在您的聯系倉庫中搜索它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.