【Maven】遇到的问题

【Maven】遇到的问题

  1. Maven 依赖jar包 导入异常
  2. Maven 插件异常

1. Maven 依赖jar包 导入异常

查看中央仓库也有该文件,pom.xml的格式跟仓库格式一致,本地仓库也能下载该文件,pom.xml没有报错信息,但是在compile有错误信息

1.1 同事搭建的maven 仓库的信息:

Maven 仓库的信息

1.2 项目中的导入信息:

pom.xml 的依赖信息

1.3 本地的repository 内容:

能下载到 jar

1.4 mvn compile 的报错信息:

no dependency information available

xxxx was cached in the local repository, resolution will not be reattempted until the update

找了好久,每次我拉去项目都有这个问题,之前是通过 修改某部分代码,跳过引用该jar包的方法,现在终于有时间了,认真看了下,发现 同事维护的 maven 仓库中 对于这个jar,缺少一个 .pom 文件,而IDEA在compile的时候,会通过这个文件确定当前仓库有没有该jar,至于在 pom 从 中央仓库拉取 jar的时候,能准确识别,我觉得是因为往 maven仓库添加该jar的时候,通过命令添加 生成了对应的的文件维护了这个关系,但是在compile的时候,需要通过 .pom来调用代码的时候就找不到了。

xxxxx.pom 文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.com.xxxxx</groupId>
  <artifactId>xxxxxxxxx</artifactId>
  <version>2.0</version>
</project>

在本地的仓库jar同级目录创建 xxxx.pom,添加以上内容,IDEA在compile的时候就能找到了。

2. 插件版本错误:

运行 mvn site 命令时出现 java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent 的问题。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.3</version>
</plugin>
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-project-info-reports-plugin</artifactId>
   <version>2.7</version>
</plugin>
如果写 version 写 2.7 会报错,先在 dependecy 写一下,让maven  先把这个 jar 下载下来,再把dependecy 删掉就行了。怀疑,plugin 是不会下载jar包的,需要 dependecy 去下载,使用IDEA默认创建的maven项目,会带一个maven 插件的版本,不一定是你要使用的,如果想下载其他版本的 plugin,通过dependecy 去下载。
<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-project-info-reports-plugin</artifactId>
  <version>2.7</version>
</dependency>

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments