本地建立archiva私库
https://archiva.apache.org/download.cgi 下zip包,然后进入到bin目录下使用 archiva console启动。
建立parent pom
建立parent pom管理文件,pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foxconn.b2b</groupId>
<artifactId>b2b-business-parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>b2b-business-parent</name>
<description>b2b业务父POM文件</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.1</spring-cloud.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<mybatis-plus.starter.version>3.4.3.1</mybatis-plus.starter.version>
<druid.starter.version>1.2.6</druid.starter.version>
<swagger.version>3.0.0</swagger.version>
<alibaba.fastjson.version>1.2.9</alibaba.fastjson.version>
<hutool.version>4.6.17</hutool.version>
</properties>
<!-- spring boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath />
</parent>
<dependencyManagement>
<dependencies>
<!-- spring-cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring-cloud-alibaba -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.starter.version}</version>
</dependency>
<!-- alibaba 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.starter.version}</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- alibaba fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${alibaba.fastjson.version}</version>
</dependency>
<!-- hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
</plugins>
</pluginManagement>
</build>
<!-- 设置项目下载依赖文件位置 -->
<repositories>
<!-- 配置私服 -->
<repository>
<id>foxconn-releases</id>
<name>Foxconn Nexus Release Repository</name>
<!-- 远程仓库URL -->
<url>http://localhost:8080/repository/internal</url>
<!-- 稳定版本 -->
<releases>
<!-- maven可以从仓库下载releases版本的构建,默认为true -->
<enabled>true</enabled>
<!-- maven构建时,指定snapshots更新策略 always、daily、interval、never -->
<updatePolicy>always</updatePolicy>
</releases>
<!-- 快照(测试)版本 -->
<snapshots>
<!-- maven可以从仓库下载snapshots版本的构建,默认为true -->
<enabled>true</enabled>
<!-- maven构建时,指定snapshots更新策略 always、daily、interval、never -->
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>foxconn-snapshots</id>
<name>Foxconn Nexus Snapshot Repository</name>
<url>http://localhost:8080/repository/snapshots</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<!-- 设置项目下载插件位置 -->
<pluginRepositories>
<pluginRepository>
<id>foxconn-releases</id>
<name>Foxconn Nexus Release Repository</name>
<url>http://localhost:8080/repository/internal</url>
</pluginRepository>
<pluginRepository>
<id>foxconn-snapshots</id>
<name>Foxconn Nexus Snapshot Repository</name>
<url>http://localhost:8080/repository/snapshots</url>
</pluginRepository>
</pluginRepositories>
<!-- 设置项目打包成库文件后要上传的位置 -->
<distributionManagement>
<repository>
<id>foxconn-releases</id>
<name>Foxconn Nexus Release Repository</name>
<url>http://localhost:8080/repository/internal</url>
</repository>
<snapshotRepository>
<id>foxconn-snapshots</id>
<name>Foxconn Nexus Snapshot Repository</name>
<url>http://localhost:8080/repository/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
登录archiva
登录archiva,需要有upload权限
选择右侧的Upload Artifact,进行上传
通过Browse可以发现,pom文件并未上传成功
选择右侧的Upload Artifact,重现进行上传
通过Browse可以发现,pom文件上传成功
本地pom引用
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>springcloud-template</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>springcloud-template</name>
<description>template for spring cloud micro-service maven project</description>
<!-- 继承b2b业务父POM -->
<parent>
<groupId>com.foxconn.b2b</groupId>
<artifactId>b2b-business-parent</artifactId>
<version>1.0.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modules>
<module>sp-nacos-sample</module>
<module>sp-mvc-sample</module>
</modules>
<repositories>
<!-- 配置私服 -->
<repository>
<id>foxconn-releases</id>
<name>Foxconn Nexus Release Repository</name>
<!-- 远程仓库URL -->
<url>http://localhost:8080/repository/internal</url>
<!-- 稳定版本 -->
<releases>
<!-- maven可以从仓库下载releases版本的构建,默认为true -->
<enabled>true</enabled>
<!-- maven构建时,指定snapshots更新策略 always、daily、interval、never -->
<updatePolicy>always</updatePolicy>
</releases>
<!-- 快照(测试)版本 -->
<snapshots>
<!-- maven可以从仓库下载snapshots版本的构建,默认为true -->
<enabled>true</enabled>
<!-- maven构建时,指定snapshots更新策略 always、daily、interval、never -->
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</project>
maven-setting设置
如果maven的setting中配置了代理,需要将远程archiva仓库路径加入nonProxyHosts中
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>H7113701</username>
<password>fmTQW4J6</password>
<host>10.67.9.200</host>
<port>3128</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>