0 0

Maven集成时依赖jar包版本控制问题10

我有一个WEB工程需要用到commons-collections和commons-dbcp.
代码中用到的是commons-collections的3.1版本特性,但是资源库中commons-dbcp依赖的
commons-collections指定了2.1版本。看了下commons-dbcp-1.2.1.pom:
<dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>2.1</version>
    </dependency>

当我将web工程打包时,maven会将commons-collections-3.1.jar
和commons-collections-2.1.jar都拷贝进WAR包。 如何只让maven只将
commons-collections-3.1.jar拷贝到war包中去?


  
问题补充:
谢谢,jansel的答复,方案1是可以行的,但是觉得maven应该有其它解决方案,所以发贴出来咨询一下。方案2我试过了,在我自己的工程pom.xml文件中指定了
高版本的common-collections,但是maven做package的时候依赖会将两个版本的common-collections库都打进WEB-INF/lib,我的maven版本是2.0.9.
问题补充:
E:\NGWORK\javaprj\webapp>mvn dependency:tree -Dverbose -Dincludes=commons-collections

E:\NGWORK\javaprj\webapp>set MAVEN_OPTS=-Xms64m  -Xmx512m
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - asiainfo.cboss:cboss:war:SNAPSHOT
[INFO]    task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/asiainfo/cas/aicasclient/1.0/aicasclient-1.0.pom
Downloading: http://repo1.maven.org/maven2/cmcc/twcmcc/1.4/twcmcc-1.4.pom
Downloading: http://repo1.maven.org/maven2/castor/castor-xml/1.0/castor-xml-1.0.pom
Downloading: http://repo1.maven.org/maven2/asiainfo/openboss/openclient/2.0/openclient-2.0.pom
Downloading: http://repo1.maven.org/maven2/xstream/xstream/1.3/xstream-1.3.pom
Downloading: http://repo1.maven.org/maven2/jdk/tools/1.4.2/tools-1.4.2.pom
Downloading: http://repo1.maven.org/maven2/servlet/servlet/2.3/servlet-2.3.pom
Downloading: http://repo1.maven.org/maven2/asiainfo/cboss/portalExternal/1.8/portalExternal-1.8.pom
Downloading: http://repo1.maven.org/maven2/asiainfo/openbuff/EzfrmWeb/1.0/EzfrmWeb-1.0.pom
Downloading: http://repo1.maven.org/maven2/asiainfo/openbuff/EzfrmBiz/1.0/EzfrmBiz-1.0.pom
Downloading: http://repo1.maven.org/maven2/net/sf/jasperreports/2.0.3/jasperreports-2.0.3.pom
Downloading: http://repo1.maven.org/maven2/lowagie/itext/1.3.1/itext-1.3.1.pom
Downloading: http://repo1.maven.org/maven2/lowagie/itext-asian/1.0/itext-asian-1.0.pom
Downloading: http://repo1.maven.org/maven2/net/sf/json/2.2.1/json-2.2.1.pom
Downloading: http://repo1.maven.org/maven2/net/sf/ezmorph/1.0.4/ezmorph-1.0.4.pom
Downloading: http://repo1.maven.org/maven2/edu/concurrent/1.0/concurrent-1.0.pom
Downloading: http://repo1.maven.org/maven2/asiainfo/ny/nysecurity/1.0/nysecurity-1.0.pom
Downloading: http://repo1.maven.org/maven2/cmcc/trustwork/1.4/trustwork-1.4.pom
Downloading: http://repo1.maven.org/maven2/cmcc/pwdSvr/1.4/pwdSvr-1.4.pom
Downloading: http://repo1.maven.org/maven2/poi/poi/2.5.1-FINAL/poi-2.5.1-FINAL.pom
[INFO] [dependency:tree]
[INFO] asiainfo.cboss:cboss:war:SNAPSHOT
[INFO] +- asiainfo.cboss:cboss-common:jar:SNAPSHOT:compile
[INFO] |  \- org.apache.velocity:velocity:jar:1.5:compile
[INFO] |     \- (commons-collections:commons-collections:jar:3.1:compile - omitted for conflict with 2.1)
[INFO] +- commons-collections:commons-collections:jar:3.1:runtime (scope not updated to compile)
[INFO] +- commons-dbcp:commons-dbcp:jar:1.2.1:compile
[INFO] |  \- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 3.1)
[INFO] +- commons-beanutils:commons-beanutils:jar:1.6:compile
[INFO] |  \- (commons-collections:commons-collections:jar:2.0:compile - omitted for conflict with 3.1)
[INFO] \- commons-pool:commons-pool:jar:1.2:compile
[INFO]    \- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 3.1)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 33 seconds
[INFO] Finished at: Wed Sep 09 13:18:59 CST 2009
[INFO] Final Memory: 13M/63M
问题补充:
的确是按最短路径实现的,我在自己的pom.xml中指定了使用版本,maven就是使用这个版本的。 上午是因为忘记做clean了,所以原来已经拷贝到WEB-INF/lib目录的库没有被清理这样commons-collections-2.1.jar还是会存在, 让我误认为不能生效。
2009年9月08日 20:35

2个答案 按时间排序 按投票排序

0 0

采纳的答案

引入

commons-dbcp

的时候把commons-collections-2.1 exclude掉就行了

或者

在你的直接的POM中引入

commons-collections

Maven是按照最短路径来的,只要你直接在POM引入了,就会用你直接引入的。

Maven2.0.9是这样的,不知道2.1这个规则有没有改,LZ试一试上面两种方法

2009年9月09日 09:11
0 0

正好我也有这么一个工程,同时指定了,但是最好只有一个jar啊。

你看一下 mvn dependency:tree 看一下2.1是谁引入的 然后就是一定要比较一下2.1和3.1的groupId和artifactId 是不是一样 万一不行就把POM文件发上来 我在我的系统上Run一把

2009年9月09日 11:24

相关推荐

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    本文将详细讨论如何将Jetty与Maven进行集成,并介绍关键的`maven-jetty-plugin`插件及其不同版本。 1. Maven与Jetty集成的意义: Maven通过其强大的依赖管理功能,使得项目构建变得简单和规范。而Jetty作为轻量级...

    JSONObject相关jar包和maven管理jar包

    Maven通过在项目对象模型(Project Object Model, POM)文件中定义依赖,可以自动下载并管理所需的jar包,包括JSONObject,简化了项目的构建和部署过程。 **标签解析:** “JSONObject jar”标签明确了我们的讨论...

    elasticsearch 5.4.0 maven依赖jar包

    "elasticsearch 5.4.0 maven 依赖jar包" 指的是在 Maven 项目中使用 Elasticsearch 5.4.0 版本时,需要的全部依赖库文件。这些 jar 包包括 Elasticsearch 核心库、X-Pack 插件以及其他相关的第三方库,例如 Lucene、...

    mavenjar包

    总结起来,"mavenjar 包" 的处理涉及到了 Maven 的 JAR 文件打包、依赖管理和 IDE 集成。正确地将 JAR 文件放入 Java 环境并更新开发环境,可以确保项目的正常运行和开发效率的提升。对于Java开发者来说,熟练掌握 ...

    非maven项目集成minIO所需要的jar包

    标题和描述提到了在非Maven项目中集成MinIO时可能会遇到的jar包冲突问题。 以下是你提供的压缩包中的jar文件及其在MinIO集成中的作用: 1. **guava-28.1-jre.jar**:Google的Guava库提供了一系列实用工具类,如...

    maven安装jar包工具

    Maven通过中央仓库下载所需的jar包,使得开发者能够轻松地集成第三方库。然而,有时候我们需要将本地的jar包安装到Maven仓库,以便于在项目中引用,这就是“maven-install-jar-tool”所解决的问题。 “maven-...

    maven下载QRCode.jar包

    总的来说,通过Maven下载`QRCode.jar`包,可以帮助Java开发者轻松地集成二维码生成功能,而无需手动下载和管理依赖。只需正确配置`pom.xml`文件,Maven就能自动处理所有下载和依赖管理,使项目构建更加简洁高效。

    Maven 构建 Kettle 时所需的部分jar包

    在使用Maven构建Kettle项目时,我们需要确保正确配置Maven的POM.xml文件,以包含所有必要的依赖项,这些依赖项通常是以jar包的形式存在。"Kettle Maven jar"标签提示我们,这里涉及的是Kettle与Maven结合使用时所需...

    maven批量导入第三方jar包至本地库工具

    在Java开发中,Maven是一个广泛使用的构建工具,它依赖于中央仓库中的各种jar包来构建项目。然而,有时候我们可能需要使用一些不在中央仓库中的第三方库,这就需要我们将这些jar包手动导入到Maven的本地库。"maven...

    springMVC jar依赖包全

    Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构,使得开发者可以轻松地分离业务逻辑...这些jar包共同构建了Spring MVC框架,为开发者提供了强大的Web应用开发能力。

    jodconverter2.2.2.jar Maven依赖包

    标题“jodconverter2.2.2.jar Maven依赖包”涉及到的是一个Java开发中的关键组件,即JODConverter库的一个特定版本。JODConverter是一个开源的文档转换工具,它允许用户在Java应用程序中方便地将各种Office文档格式...

    maven较全的jar包 ssm

    在实际开发中,"maven较全的jar包 ssm"通常意味着这个压缩包包含了SSM框架所需的大部分依赖jar包,以及像JUnit这样的测试库。开发者可以直接将这些jar包引入到项目中,无需逐个从网上搜索和下载,极大地提升了开发...

    maven_package 依赖包(完整)

    在POM中声明所需依赖,Maven会根据设定的坐标(groupId、artifactId、version)从Maven中央仓库或其他指定的远程仓库下载对应的jar包。例如,`&lt;dependency&gt;`标签用于声明项目依赖,`&lt;dependencies&gt;`标签则用于包含...

    导出maven项目依赖的jar包(图文教程)

    在将 Maven 项目依赖的 jar 包导出时,可以设置依赖级别。通常使用 compile 级别。输入以下命令: ``` mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile ``` 这将将 Maven 项目依赖...

    非常好用的PDF转图片jar包附带Maven依赖

    综上所述,这个"非常好用的PDF转图片jar包"为开发者提供了一种高效、便捷的方式将PDF转换为图像,通过Maven依赖管理,可以轻松地将其整合到Java项目中。在实际应用中,我们需要关注性能优化、错误处理以及与其他技术...

    springboot(非maven)jar包

    这个文件夹很可能包含了项目的依赖库,非 Maven 构建时,通常会将所有依赖的 jar 包放在一起。开发者可能使用了 `BOOT-INF/lib` 结构来组织这些依赖,这样在运行 jar 包时,JVM 将能正确找到它们。 7. **`.git` ...

    maven-JAR包

    当 Maven 构建项目时,它会从预设的 Maven 仓库(如 Maven Central Repository)中查找并下载这些依赖的 JAR 包,确保项目的运行环境完整。 **构建生命周期** Maven 的构建生命周期包括三个阶段:Clean、Default ...

    开发+MAVEN私服+nexus最新版+jar包依赖

    本文将详细介绍如何使用最新的Nexus版本搭建和使用MAVEN私服,以及如何实现jar包依赖。 **1. Maven与Maven私服** Maven是Apache软件基金会开发的一款项目管理和集成工具,它通过POM(Project Object Model)文件来...

    Maven集成包

    **Maven集成包详解** Maven,一个由Apache软件基金会开发的项目管理和综合工具,是Java世界中的构建神器。它的核心理念是通过项目对象模型(Project Object Model,简称POM)来管理和构建软件项目,极大地简化了...

    java集成kettle相关jar包

    在提供的`pom.xml`文件中,可以看到对Kettle相关jar包的依赖配置,这有助于我们在本地Maven仓库中正确地安装和引用这些库。 手动安装Kettle的jar包到Maven仓库的步骤如下: 1. 下载Kettle的jar文件:这可能来自...

Global site tag (gtag.js) - Google Analytics