Maven 개인 라이브러리와 공용 라이브러리를 혼합하는 두 가지 방법

사립도서관과 공립도서관의 혼합이용 두 가지 방법

maven setting.xml 구성:

인터넷에 있는 많은 정보: https://www.cnblogs.com/hongmoshui/p/10762272.html

1. 넥서스프록시 공공도서관

넥서스가 개인 도서관을 구축하는 것도 매우 일반적이며 자세한 단계는 Baidu입니다.

개인 라이브러리가 있는 서버는 인터넷 머신이므로 setting.xml의 구성은 다음과 같을 수 있습니다.

<?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">

	<localRepository>D:\repository</localRepository>

	<servers>
		<server>
			<id>myServer</id>
			<username>admin</username>
			<password>123456</password>
		</server>
	</servers>
	<mirrors>
		<mirror>
			<id>my</id>
			<mirrorOf>*</mirrorOf>
			<name>my Repository</name>
			<url>http://localhost:8081/repository/maven-group/</url>
		</mirror>
    </mirrors>
	<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<jdk>1.8</jdk>
			</activation>
			<repositories>
				<repository>
					<id>my</id>
					<url>http://locahost:8081/repository/maven-public</url>
					<releases>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</releases>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
				</repository>
			</repositories>
		</profile>

	</profiles>
	<activeProfiles>
		<activeProfile>dev</activeProfile>
	</activeProfiles>
</settings>

모든 maven pull 요청은 위에 구성된 id로 채널을 mirrorOf통과한 다음 종속 풀이 jar가 풀릴 때까지 혼합 라이브러리의 웨어하우스를 하나씩 풀링합니다(주로 여기의 ).mirrormeiyamirrorOf*

2. Setting.xml은 개인 및 공용 라이브러리를 구성합니다.

이 경우 Private Repository가 위치한 서버는 외부 네트워크에 접속할 수 없기 때문에 이때 Public Repository Agent를 구성하는 것은 의미가 없으나 개발 머신 자체는 인터넷에 접속할 수 있다.

이 경우 setting.xml 구성은 다음과 같을 수 있습니다.

<?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">

   <localRepository>D:\repository</localRepository>
<!--  <offline>true</offline>-->
  <servers>
	 <server>
      <id>myServer</id>
      <username>admin</username>
      <password>123456</password>
    </server>
  </servers>

  <mirrors>
	  <mirror>
		  <id>my</id>
		  <mirrorOf>my</mirrorOf>
		  <name>central repository</name>
		  <url>http://localhost:8081/repository/maven-public/</url>
	  </mirror>
  </mirrors>

<profiles>
    <profile>
	<id>nexus</id>
		<repositories>
			<repository>
				<id>my</id>  
					<url>http://localhost:8081/repository/maven-public</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
		</repositories>
    </profile>
    <!--默认节点,可以不配置,那么就会从maven中央仓库拉取-->
	<profile>
		<id>ali</id>
		<repositories>
			<repository>
				<id>central</id>
				<url>https://maven.aliyun.com/repository/public</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>false</enabled>
				</snapshots>
			</repository>
		</repositories>
	</profile>
</profiles>

	<activeProfiles>
		<activeProfile>nexus</activeProfile>
		<activeProfile>ali</activeProfile>
	</activeProfiles>
</settings>

이 방법은 추가 Alibaba Cloud 창고를 구성하는 것을 볼 수 있습니다.실제로 첫 번째 방법에 따라 구성할 수도 있으므로 다음은 몇 가지 지식 포인트입니다.

  1. 노드를 구성한 후 mirror사용자 지정 미러에서 종속성을 가져옵니다.
  2. mirror이동할 노드를 판단하는 방법은 다음과 같이 구성할 수 있는 id에 해당하는 mirrorOf속성을 기반으로 합니다.mirrorOfrepository
  3. 또한 기본 풀 상황이 있습니다. 기본 풀 구성의 전제는 개인 창고 미러가 그렇지 않은 경우 mirrorOf모든 *요청이 노드로 이동하고 *기본 풀 상황이 없으므로 다음과 같습니다.
    1. 노드 에서 mirrorOf개인 창고의 id를 구성하면 개인 창고를 먼저 찾고, 개인 창고를 찾을 수 없으면 기본 maven 중앙 창고로 이동하여 찾습니다.
    2. 위의 구성처럼 centralid로 창고를 구성하면 중앙 창고라는 의미로 기본적으로 이 노드가 사용되는데, 위에서 알리바바 클라우드의 창고를 구성했다면 기본적으로 이 창고를 사용하게 될 것이다.

추천

출처blog.csdn.net/qq_28911061/article/details/119766302