项目路径大概如下:
-- parent
|-- system-entity
|-- system-interfaces
pom.xml
问题
把system-entity的模块打包jar,然后通过maven进行deploy到内网的nexus里面,Jenkins再构建其他引入了system-entity.jar的项目的时候,提示无法下载system-entity.jar包.
排查
1.登录本地内网的Nexus查看,确认是否存在system-entity.jar.不存在这说明上传失败.
2.检查Jenkins里面使用的maven配置文件,是否配置了本地Nexus的镜像(快照仓库/正式仓库)
3. 检查Jenkins里面使用的maven配置文件,是否配置了每次更新都是下载最新的包
(maven机制默认一天只更新一次,可以通过修改xml属性配置)
附上maven的setting说明地址
应该是下面<updatePolicy>配置为 always
<repositories>
<!--包含需要连接到远程仓库的信息 -->
<repository>
<!--远程仓库唯一标识 -->
<id>codehausSnapshots</id>
<!--远程仓库名称 -->
<name>Codehaus Snapshots</name>
<!--如何处理远程仓库里发布版本的下载 -->
<releases>
<!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
<enabled>false</enabled>
<!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
<updatePolicy>always</updatePolicy>
<!--当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 -->
<checksumPolicy>warn</checksumPolicy>
</releases>
<!--如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
<!--远程仓库URL,按protocol://hostname/path形式 -->
<url>http://snapshots.maven.codehaus.org/maven2</url>
<!--用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->
<layout>default</layout>
</repository>
</repositories>
4. 父级项目parent的 pom.xml需要上传到Nexus 或者 你直接用parent项目把整个项目 deploy到本地内网的Nexus