Nexus 充当maven私服,还提供强大的仓库管理、构件搜索等功能。

一、私服配置

1.1. 架构部署图

结构图

maven内网搭建 内网maven配置_maven

如图:为maven-nexus-proxymaven的交互架构图
      蓝色虚线为使用外网代理私服的路线
      红色虚线为使用内网资源转移下载路线
 
##外网
maven本地仓库 指定本地位置缓存下载的jar  默认为官方中央仓库 可配置为私服代理(阿里私服)
nexus私服仓库 通过代理仓库下载缓存jar 提供给局域网内各个maven资源
maven本地仓库 可以通过发布jar到nexus私服进行管理 提供给其他用户使用
 
##内网
maven本地仓库 指定本地位置缓存下载的jar 必须配置私服 否则下载时超时
nexus私服仓库 通过代理仓库下载缓存jar 如果内网有穿透的机子可以使用代理,若无则要通过存储媒介在外网下载jar后 内网上传至nexus私服仓库 提供给局域网内各个maven资源
maven本地仓库 可以通过发布jar到nexus私服进行管理 提供给其他用户使用

部署图

maven内网搭建 内网maven配置_jar_02

1.2. Maven详细配置

如果配置在maven setting中则为全局配置 如果配置为项目pom中则为项目配置

1.2.1. 全局配置

配置在maven setting
1)、配置认证信息(必须配置在setting中)
Nexus的仓库对于匿名用户是只读的。为了能够部署构件,还需要在setting.xml中的servers配置认证信息。

<server>
        <id>nexus_release</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>nexus_snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>

2)、配置镜像地址
在settings.xml 文件的 mirrors 内添加以下镜像地址

<!--如同使用proxy指定下载点 不设置时直接到中央仓库下载-->
     <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>

3)、配置Profile
在profiles内添加以下Profile 配置

<!--动态配置参数-->
<profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>nexus_release</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <repository>
          <id>nexus_snapshots</id>
          <url>http://central</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

4)、配置activeProfile
在settings内添加以下配置

<!--激活配置参数-->
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

1.2.2. 项目配置

修改项目pom.xml文件 (父pom即可)
配置下载使用maven公共库maven-group

1)、仓库配置

<!--仓库配置 如同maven 配置镜像-->
<repositories>
	<repository>
		<id>maven-public</id>
		<name>maven-public</name>
		<url>http://localhost:8081/repository/maven-public/</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>true</enabled>
			<updatePolicy>always</updatePolicy>
			<checksumPolicy>warn</checksumPolicy>
		</snapshots>
	</repository>
</repositories>
<!--插件库配置 -->
<pluginRepositories>
	<pluginRepository>
		<id>mmaven-public</id>
		<name>maven-public</name>
		<url>http://localhost:8081/repository/maven-public/</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>true</enabled>
			<updatePolicy>always</updatePolicy>
			<checksumPolicy>warn</checksumPolicy>
		</snapshots>
	</pluginRepository>
</pluginRepositories>

2)、配置发布到maven本地库 maven-releases以及maven-snapshots
3)、使用profile(可省略)

<profiles>
	<profile>
		<id>env-dev</id>
		<!--命名唯一-->
		<repositories>
			<repository>
				<id>maven-public</id>
				<name>maven-public</name>
				<url>http://localhost:8081/repository/maven-public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
					<checksumPolicy>warn</checksumPolicy>
				</snapshots>
			</repository>
		</repositories>
		<pluginRepositories>
			<pluginRepository>
				<id>maven-public</id>
				<name>maven-public</name>
				<url>http://localhost:8081/repository/maven-public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
					<checksumPolicy>warn</checksumPolicy>
				</snapshots>
			</pluginRepository>
		</pluginRepositories>
		<!--配置仓库管理-->
		<distributionManagement>
			<!--设置发布稳定仓库-->
			<repository>
				<id>nexus_release</id>
				<!--id必须与setting中对应 使用setting配置用户-->
				<name>User Project Release</name>
				<url>http://localhost:8081/repository/maven-releases/</url>
			</repository>
			<!--设置发布的快照库-->
			<snapshotRepository>
				<id>nexus_snapshots</id>
				<!--id必须与setting中对应 使用setting配置用户-->
				<name>User Project SNAPSHOTS</name>
				<url>http://localhost:8081/repository/maven-snapshots/</url>
			</snapshotRepository>
		</distributionManagement>
	</profile>
    <!--以下省略其他profile-->
</profiles>

二、私服使用

https://www.processon.com/view/link/5cb6e3b7e4b08b66b9aee473

Eclipse上部署

  1. 选择你需要部署到私服的项目,然后右击,选择Run As -> Run Configurations...

maven内网搭建 内网maven配置_内网_03

  1. 保存后点击Run。成功后在Nexus上的对应宿主仓库里就可以看到对应jar啦!

【Quality】 Quality is the value to someone who matters。做测试,首先要找到这个someone是谁,以及这个 someone重视的 value是什么。