从Nexus私服下载和上传资源(一)
从私服中下载资源
首先要明确将资源下载到哪里
找到maven 配置文件settings.xml 文件,添加如下配置:
1、添加镜像配置;将所有访问外网仓库的请求指向私服;
1 <mirror> 2 <!-- 此镜像一般用来作为公司第三方引用基础类库镜像,是所有仓库的镜像地址 --> 3 <id>nexus</id> 4 <!-- 为*表示为所有的仓库做镜像,有了这个配置,所有的构建都会包含public组,如果你想包含public-snapshots组, 5 你必须添加public-snapshots这个Profile,通过在命令行使用如下的 -P 标志:$ mvn -P public-snapshots clean install --> 6 <mirrorOf>*</mirrorOf> 7 <url>http://localhost:8081/nexus/content/groups/public</url> 8 </mirror>
注:url标签连接是上方划链接,必须一致
2、添加仓库配置;(注意:仓库的配置是可以在 pom.xml 中配置的;优先级大于总配置文件settings.xml)
1 <profile> 2 <id>nexus</id> 3 <!-- 仓库。仓库是Maven用来填充构建系统本地仓库所使用的一组远程项目。而Maven是从本地仓库中使用其插件和依赖。 4 不同的远程仓库可能含有不同的项目,而在某个激活的profile下,可能定义了一些仓库来搜索需要的发布版或快照版构件。有了Nexus,这些应该交由Nexus完成 --> 5 <!-- 所有请求均通过镜像 --> 6 <repositories> 7 <repository> 8 <id>central</id> 9 <!-- 虚拟的URL形式,指向镜像的URL,因为所有的镜像都是用的是nexus,这里的central实际上指向的是http://repos.d.xxx.com/nexus/content/groups/public --> 10 <url>https://repo1.maven.org/maven2/</url> 11 <!-- 表示可以从这个仓库下载releases版本的构件--> 12 <releases><enabled>true</enabled></releases> 13 <!-- 表示可以从这个仓库下载snapshot版本的构件 --> 14 <snapshots><enabled>true</enabled></snapshots> 15 </repository> 16 </repositories> 17 18 <!-- 插件仓库。仓库是两种主要构件的家。第一种构件被用作其它构件的依赖。这是中央仓库中存储大部分构件类型。 19 另外一种构件类型是插件。Maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其它仓库。 20 pluginRepositories元素的结构和repositories元素的结构类似。每个pluginRepository元素指定一个Maven可以用来寻找新插件的远程地址。 --> 21 <pluginRepositories> 22 <pluginRepository> 23 <id>central</id> 24 <url>https://repo1.maven.org/maven2/</url> 25 <releases><enabled>true</enabled></releases> 26 <snapshots><enabled>true</enabled></snapshots> 27 </pluginRepository> 28 </pluginRepositories> 29 </profile>
url地址为中央仓库的地址,无法改变。
将请求拦截,再转移至上方镜像,以上两个内容配合使用。
3、生效配置
1 <activeProfiles> 2 <activeProfile>nexus</activeProfile> 3 </activeProfiles>
流程总结:
先是效了一个nexus请求,然后拦截中央仓库的请求和插件的请求,通过id找到上方的id,就转到了组仓库,租仓库就会从我们配置好的仓库依次去查找jar包,找到后,就会下载到maven的本地仓库中。
以上主要内容就配置完毕了,接下来进入eclipse,进行maven的更新。
jar包上传:
点击后,可看到以下内容:
接下来进行坐标的配置(坐标可自行定制)
选择GAV Parameters
自定义进行以下配置:
之后,再次点击下方的Upload Artifact(s),会提示:
以上内容我们就成功的将oracle的jar包上传到了第三方的宿主仓库。
接下来验证jar包是否上传成功,点击Browse Storage→Refresh,可以看到,上传成功
还有一个问题,此时本地仓库时没有这个文件的。我们需要将jar包从私服中下载到本地。
点击ojdbc6-11.0.0.jar
右侧展现出了我们要引用的jar包的坐标,将该坐标直接复制,然后粘贴到我们使用的pom.xml中的dependencies
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>cn.sm1234</groupId> 5 <artifactId>sm1234-service</artifactId> 6 <version>0.0.1-SNAPSHOT</version> 7 <description>这是一个service模块</description> 8 9 <!-- 引用ojdbc.jar --> 10 <dependencies> 11 <dependency> 12 <groupId>com.oracle</groupId> 13 <artifactId>ojdbc6</artifactId> 14 <version>11.0.0</version> 15 </dependency> 16 </dependencies> 17 18 </project>
保存。我们可以发现maven先会到本地仓库中查找。
本地仓库:该jar包是从私服中下载的
流程描述:
从私服下载jar包到本地仓库,再从本地仓库引用到本地的项目的过程