Maven引入的jar包无法被找到?

使用IDEA IDE构建Maven项目,其他的依赖可以正常导入、使用,今天尝试集成阿里的P3C-PMD进行静态代码检查,遇到了如下问题:
图片说明

提示找不到对应的类,但是在IDE中已经可以看到Maven成功下载了该jar包,图片说明

与该依赖相关的POM.xml如下:

<dependency>
  <groupId>com.alibaba.p3c</groupId>
  <artifactId>p3c-pmd</artifactId>
  <version>2.0.0</version>
</dependency> 


<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-pmd-plugin</artifactId>
  <configuration>
     <rulesets>
        <ruleset>/src/main/resources/rulesets/ali-comment.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-concurrent.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-constant.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-exception.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-flowcontrol.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-naming.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-oop.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-orm.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-other.xml</ruleset>
        <ruleset>/src/main/resources/rulesets/ali-set.xml</ruleset>
     </rulesets>
     <printFailingErrors>true</printFailingErrors>
  </configuration>
  <version>3.8</version>
</plugin> 

2个回答

看依赖配置没有问题,Maven Project 刷新下重新下载,可能是网速问题没有下载到本地仓库。

因为pom.xml的dependency标签下的scope标签是规定了jar包需要的范围

scope标签里面有5个值

1、compile 范围 :是默认编译范围 在项目编译,测试,运行均需要,由于运行时需要所以compile的依赖会被打包

2、provided: provided依赖只有当JDK或者一个容器已提供依赖时才使用,其是在编译,测试需要,运行时不需要,因为某些jar包服务器上面有,如果运行时再需要就会造成jar包冲突,比如:servlet api会被tomcat容器提供.上面运行时找不到jar包就是这个原因,因为provided在运行时并不被需要,而tomcat服务器和jdk上也没有这个jar包,所以运行时找这个jar包时就会找不到,解决方法就是不用provided,通过删除这个scope标签即可,因为删除后就是默认的compile范围了

3、runtime依赖: 在运行和测试需要,编译期不需要,只有在编译和运行时才使用,由于运行时需要所以runtime依赖会被打包

4、test依赖: 在测试编译和测试运行时需要,在编译和运行时都不需要,因此不会被打包

5、system: 不推荐使用

作者:xuanmingren
来源:CSDN
原文:https://blog.csdn.net/xuanmingren/article/details/80465063
版权声明:本文为博主原创文章,转载请附上博文链接!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问