maven的jar包治理失效

maven的jar包管理失效


运行maven的时候提示The POM for commons-discovery:axis:jar:1.4 is missing, no dependency information


遇到这样的提示,很多时候是因为jar包不存在了,已经不在maven仓库中管理了,因此就拿不到jar包了,但是没有这个jar包又会导致maven install运行不通过。因此处理的方案有两种,一种是下载Jar包安装到本地目录中,另外一种是更改pom文件,更换一个Jar包的版本。


原来的pom文件如下所示:

<dependency>
        <groupId>org.eclipse.birt.runtime</groupId>
        <artifactId>viewservlets</artifactId>
        <version>4.3.0</version>
</dependency>

在mavenrepository库中查找依赖关系:

Depends on

Category   Group / Artifact Version
  commons-discovery » axis 1.4
  commons-discovery » commons-discovery 0.5
  org.eclipse.birt.runtime » org.eclipse.birt.runtime 4.3.0

发现依赖一个common-discover:axis的jar包,但是这个jar包点击进去并不存在,因此导致了依赖失败。继续查看viewservlets包的其他版本(4.4.1),发现:

Depends on

Category   Group / Artifact Version
  commons-discovery » commons-discovery 0.5
  org.apache.axis » axis 1.4
  org.eclipse.birt.runtime » org.eclipse.birt.runtime 4.4.1

因此改为org.apache.axis:axis的jar包:pom文件修改如下:

<dependency>
        <groupId>org.eclipse.birt.runtime</groupId>
        <artifactId>viewservlets</artifactId>
        <version>4.3.0</version>
        <exclusions>
            <exclusion>
                <artifactId>axis</artifactId>
                <groupId>commons-discovery</groupId>
            </exclusion>
        </exclusions>
</dependency>

在忽略依赖commons-discovery:axis后需要增加正确的axis包的位置:

<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
</dependency>


再次运行mvn install,问题被完美解决。


总结:


出现这类问题都是因为依赖的包不存在了,所以需要查找正确的包,或者更改依赖关系。

当前方案正是修改了依赖关系。