Maven高级之私服(二)

文章目录

(一)私服的安装和启动
(二)私服的应用
(三)安装第三方jar包到本地仓库
(四)安装第三方jar包到私服

(一)私服的安装和启动

安装
启动
登录
卸载

nexus-2.12.0-01-bundle.zip压缩解压到一个合法路径下即可,如下:
Maven高级之私服(二)_第1张图片
使用管理员权限打开PS,运行nexus.bat进行安装,如下:Maven高级之私服(二)_第2张图片
输入.\nexus.bat install命令进行安装,如下:
Maven高级之私服(二)_第3张图片
Maven高级之私服(二)_第4张图片
输入.\nexus.bat start命令进行启动,如下:
Maven高级之私服(二)_第5张图片
因为私服只支持JDK1.8,而我的环境变量默认是JDK1.9,需要打开配置文件做修改,如下:
(将 java 修改为 自己的jdk目录下的bin路径 + \java )
Maven高级之私服(二)_第6张图片
在这里插入图片描述
打开另一个配置文件,如下:
Maven高级之私服(二)_第7张图片
我们得知IP地址端口号以及虚拟路径,可以进行访问,如下:
Maven高级之私服(二)_第8张图片
点击右上角的log in进行登录,默认用户名是admin,密码是admin123,如下:
Maven高级之私服(二)_第9张图片
可以在可视化页面点击左侧的Repositories查看本地仓库
Maven高级之私服(二)_第10张图片
Maven高级之私服(二)_第11张图片
因为我们这次的私服是直接部署在本地,所以直接打开sonatype-work也可以
Maven高级之私服(二)_第12张图片
名词解析

  • 3rd party:第三方
  • Releases:私服的正式版
  • Snapshots:私服的测试版
  • Central:中央仓库,是代理的一种(最常用)
  • Apache Snapshots:也是一种中央仓库
  • Central M1 shadow:已经不再使用了,是最早期的中央仓库

group类型的仓库是我们以后要经常使用的,如下:
Maven高级之私服(二)_第13张图片
我们只要定义了一个group类型的仓库,就可以实现jar包自动下载
jar包下载顺序:私服的正式版仓库、私服的测试版仓库、第三方仓库、中央仓库、阿帕奇仓库(顺序可调整)

输入.\nexus.bat uninstall进行卸载,如下:
Maven高级之私服(二)_第14张图片

(二)私服的应用

我们之前是对父工程执行了install命令,把maven_daomaven_servicemaven_controller都打包上传到本地仓库,我们其实也可以上传到远程仓库(私服

我们要先配置私服信息(登录相关的信息),如下:
Maven高级之私服(二)_第15张图片

	<server>
		<id>releasesid>
		<username>adminusername>
		<password>admin123password>
	server>
	<server>
		<id>snapshotsid>
		<username>adminusername>
		<password>admin123password>
	server>

我们以上传maven_dao为例,接下来编辑maven_daopom.xml文件,如下:
Maven高级之私服(二)_第16张图片

    <distributionManagement>
        <repository>
            <id>releasesid>
            <url>http://localhost:8081/nexus/content/repositories/releases/url>
        repository>
        <snapshotRepository>
            <id>snapshotsid>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/url>
        snapshotRepository>
    distributionManagement>

maven_dao执行deploy命令,打包上传到私服,如下:
Maven高级之私服(二)_第17张图片
Maven高级之私服(二)_第18张图片
效果如下:
Maven高级之私服(二)_第19张图片
注意deploy是maven生命周期的最后一站,执行了deploy就代表前面的所有命令都执行了一遍,也就代表install也被执行了,所以执行了deploy不仅仅把maven_dao打包上传到远程仓库(私服),也同时打包上传到了本地仓库,如下:
Maven高级之私服(二)_第20张图片
注意:之所以本地仓库会有四个,是因为上一篇博客对maven_parent父工程执行了install

接下来把本地仓库的maven_dao删掉,试试能否从远程仓库下载maven_dao,如下:
Maven高级之私服(二)_第21张图片
注意:我们不能运行maven_parent,要运行maven_controller,只有它才会有依赖
Maven高级之私服(二)_第22张图片
效果如下:
在这里插入图片描述
可以看到是无法自动从远程仓库下载的,说明下载和上传的配置是不一样的,接下来配置下载,如下:
Maven高级之私服(二)_第23张图片

	<profile> 
		
		<id>devid>
		<repositories>
			<repository> 
				<id>nexusid> 
				<url>http://localhost:8081/nexus/content/groups/public/url> 
				<releases>
					<enabled>trueenabled>
				releases> 
				<snapshots>
					<enabled>trueenabled>
				snapshots>
			repository>
		repositories>
		<pluginRepositories> 
			<pluginRepository> 
				<id>publicid>
				<name>Public Repositoriesname>
				<url>http://localhost:8081/nexus/content/groups/public/url>
			pluginRepository>
		pluginRepositories>
	profile>

最后把它激活,如下:
Maven高级之私服(二)_第24张图片

  	<activeProfiles>
		<activeProfile>devactiveProfile>
	activeProfiles>

此时再次运行,就可以从远程仓库下载jar包了,如下:
Maven高级之私服(二)_第25张图片
可以看到又下载回本地仓库
运行效果如下:
Maven高级之私服(二)_第26张图片

(三)安装第三方jar包到本地仓库

其实之前就曾经安装过一次:maven不能加载ojdbc14.jar的解决方法

第一种方法:打开cmd直接运行
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=F:\fastjson-1.1.37.jar

第二种方法:进入jar包所在目录运行
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar

之前安装ojdbc14.jar时已经演示过第一种方法了,下面演示第二种方法,如下:
Maven高级之私服(二)_第27张图片
管理员权限打开CMD,进入到jar包所在目录,如下:
Maven高级之私服(二)_第28张图片
效果如下:
Maven高级之私服(二)_第29张图片

(四)安装第三方jar包到私服

第三方jar包要安装到thirdparty,如下:
Maven高级之私服(二)_第30张图片

首先打开maven的配置文件,配置第三方仓库信息,如下:
Maven高级之私服(二)_第31张图片

第一种方法:打开cmd直接运行
mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=F:\fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
第二种方法:进入jar包所在目录运行
mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty

其实两种方法都差不多,下面演示第一种,如下:
Maven高级之私服(二)_第32张图片
效果如下:
Maven高级之私服(二)_第33张图片
Maven高级之私服(二)_第34张图片

你可能感兴趣的:(Maven高级)