Maven 环境踩坑及完整配置

Posted dingwen_blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven 环境踩坑及完整配置相关的知识,希望对你有一定的参考价值。

一、错误描述

maven Could not transfer artifact XXX fromto XXX(XXX) Not authorized , ReasonPhrase Unauthorized.

在公司使用maven私服时出现上述错误,检查配置已经配置了snapshots、releases的认证。

二、解决

由于公司私服public也需要认证,故添加public的相关认证即可。

三 、完整配置

<?xml version="1.0" encoding="UTF-8"?>


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<!-- 本地仓库的路径。默认值为${user.home}/.m2/repository。 -->
	<localRepository>E:\\work\\file\\xxx</localRepository>

    <!-- 当没有显示提供机构信息时的默认值 -->
	<pluginGroups>
		<pluginGroup>com.dingwen</pluginGroup>
	</pluginGroups>

    <!-- 配置代理 -->
	<proxies></proxies>

	<servers>
	
		<!-- 公司私服配置开始 -->
        
		<server>
            <!-- 此处ID必须与pom文件中私服的配置部署ID一致 -->
			<id>maven-releases</id>
			<username>admin</username>
			<password>admin123</password>
		</server>
		<server>  
		  <id>maven-snapshots</id>  
		  <username>admin</username>  
		  <password>admin123</password>  
		</server>  
        <!-- 当访问需要认证时配置 -->
		<server>  
            <!-- 此处ID与mirrors的ID一致 -->
		  <id>company-maven-public</id>  
		  <username>admin</username>  
		  <password>admin123</password>  
		</server>  
		
		<!-- 公司私服配置结束 -->
		
		<!-- 华为云 -->
		<server>
		   <id>huaweicloud</id>
		   <username>anonymous</username>
		   <password>devcloud</password>
		</server>
		
	</servers>


    <!-- 相当于拦截器访问改地址是映射的配置 -->
	<mirrors>
	
	
		<!-- 公司-->
		<mirror>
			 <!-- 上面server认证ID -->
			<id>company-maven-public</id>
            <!-- * 表示匹配所有-->
            <!-- external:*:  使用所有远程仓库,本地localhost除外-->
            <!-- 仓库1,...,仓库2--->
            <!--  *,!仓库1  除了仓库1所有-->
            <!-- 仓库ID -->
			<mirrorOf>companymaven</mirrorOf>
			<url>http://xxx/repository/maven-public/</url>
		</mirror>
		
		<!-- 阿里云 -->
		<mirror>
			<id>alimaven</id>
			<name>aliyun maven</name>
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
			  <!-- 仓库ID -->
			<mirrorOf>alimaven</mirrorOf>
		</mirror>
		
		<!-- 华为云 -->
		  <mirror>
		   <id>huaweicloud</id>
		     <!-- 仓库ID -->
		   <mirrorOf>huaweimaven</mirrorOf>
		   <url>https://mirrors.huaweicloud.com/repository/maven/</url>
		  </mirror>
		
	</mirrors>


	
	<profiles>
		<!-- 公司 nexus 私服配置-->
		<profile>
			<id>company</id>
			<repositories>
				<repository>
					<id>companymaven</id>
					<name>company maven</name>
					<url>http:/xxx/maven-public/</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</repository>
			</repositories>

			<pluginRepositories>
				<pluginRepository>
					<id>companymaven</id>
					<url>http://xx/maven-public/</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</pluginRepository>
			</pluginRepositories>

		</profile>
		<!-- JDK 版本配置 -->
		<profile>
			<id>jdk-1.8</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<jdk>1.8</jdk>
			</activation>

			<properties>
				<maven.compiler.source>1.8</maven.compiler.source>
				<maven.compiler.target>1.8</maven.compiler.target>
				<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
			</properties>
		</profile>
		
		<!-- 阿里云配置 -->
		<profile>
			<id>ali</id>
			<repositories>
				<repository>
					<id>alimaven</id>
					<name>aliyun maven</name>
					<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>alimaven</id>
					<name>aliyun maven</name>
					<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	
		<!-- 华为云配置 -->
		<profile>
			<id>huawei</id>
			<repositories>
				<repository>
					<id>huaweimaven</id>
					<name>huawei maven</name>
					<url>https://mirrors.huaweicloud.com/repository/maven/</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>huaweimaven</id>
					<name>huawei maven</name>
					<url>https://mirrors.huaweicloud.com/repository/maven/</url>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>

	<!-- 激活配置 -->
	<activeProfiles>
		<activeProfile>company</activeProfile>
		<activeProfile>jdk-1.8</activeProfile>
		<activeProfile>ali</activeProfile>
		<activeProfile>huawei</activeProfile>
	</activeProfiles>

</settings>

以上是关于Maven 环境踩坑及完整配置的主要内容,如果未能解决你的问题,请参考以下文章

gitee开源程序kkFileView踩坑及解决方案

gitee开源程序kkFileView踩坑及解决方案

Java项目生产环境部署,遇到FTP连接加密服务器的踩坑及爬坑过程

ES IK拼音插件踩坑及填坑记录

踩坑日记: springcloud多环境Maven配置报错 active: @profileActive@

spring单元测试Mock,MockBean踩坑及没有真实执行的理解