Skip to content

Maven3应用

1. Maven入门

1.1. 介绍

1.1.1. Maven是什么

Maven是一个项目管理工具,它包含了一个项目对象模型(Project object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Manangement System), 和用来运行定义在生命周期阶段中插件目标的逻辑。

.Maven是面向技术层面,针对Java开发的项目管理工具,它提供了构建 工具所提供功能的超集,除了构建功能之外,Maven还可以管理项目结 构、管理依赖关系、生成报告、生成Web站点、有助于团队成员之间的 交流与协作。

1.1.2. 概念模型

1.1.3. 项目声明周期

清洁(clean)生命周期

预清洁(pre-clean) 执行实际项目清理之前所需的流程

清洁(clean) 删除以前构建生成的所有文件

后清洁(post-clean) 执行完成项目清理所需的流程

默认(default)生命周期

验证(validate) 验证项目是正确的,所有必要的信息可用。

初始化(initialize) 初始化构建状态,例如设置属性或创建目录。

产生来源(generate-sources) 生成包含在编译中的任何源代码。

流程源(process-sources) 处理源代码,例如过滤任何值。

生成资源(generate-resources) 生成包含在包中的资源。

流程资源(process-resources) 将资源复制并处理到目标目录中,准备打包。

编译(compile) 编译项目的源代码。

工艺类(process-classes) 从编译后处理生成的文件,例如对Java类进行字节码增强

。 生成测试来源(generate-test-sources) 生成包含在编译中的任何测试源代码。

流程测试来源(process-test-sources) 处理测试源代码,例如过滤任何值。

生成测试资源(generate-test-resources) 创建测试资源。

流程测试资源(process-test-resources) 将资源复制并处理到测试目标目录中。

测试编译(test-compile) 将测试源代码编译到测试目标目录中

流程检验类(process-test-classes) 从测试编译中处理生成的文件,例如对Java类进行字节码增强。对于Maven 2.0.5及以上版本。

测试(test) 使用合适的单元测试框架运行测试。这些测试不应该要求代码被打包或部署。

制备包(prepare-package) 在实际包装之前,执行必要的准备包装的操作。这通常会导致打包的处理版本的包。(Maven 2.1及以上)

打包(package) 采取编译的代码,并以其可分发的格式(如JAR)进行打包。

预集成测试(pre-integration-test) 在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境等。

集成测试(integration-test) 如果需要,可以将该包过程并部署到可以运行集成测试的环境中。

整合后的测试(post-integration-test) 执行集成测试后执行所需的操作。这可能包括清理环境。

校验(verify) 运行任何检查以验证包装是否有效并符合质量标准。

安装(install) 将软件包安装到本地存储库中,以作为本地其他项目的依赖关系。

部署(deploy) 在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。

站点(site)生命周期

预网站(pre-site) 在实际的项目现场生成之前执行所需的进程

网站(site) 生成项目的站点文档

后网站(post-site) 执行完成站点生成所需的进程,并准备站点部署

网站部署(site-deploy) 将生成的站点文档部署到指定的Web服务器

1.1.4. 常见生命周期

验证(validate) - 验证项目是否正确,所有必要的信息可用

编译(compile) - 编译项目的源代码

测试(test) - 使用合适的单元测试框架测试编译的源代码。这些测试不应该要求代码被打包或部署

打包(package) - 采用编译的代码,并以其可分配格式(如JAR)进行打包。

验证(verify) - 对集成测试的结果执行任何检查,以确保满足质量标准

安装(install) - 将软件包安装到本地存储库中,用作本地其他项目的依赖项

部署(deploy) - 在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享。

这些生命周期阶段(以及此处未显示的其他生命周期阶段)依次执行,以完成默认生命周期。给定上述生命周期阶段,这意味着当使用默认生命周期时,Maven将首先验证项目,然后尝试编译源代码,运行这些源代码,打包二进制文件(例如jar),运行集成测试软件包,验证集成测试,将验证的软件包安装到本地存储库,然后将安装的软件包部署到远程存储库。

换句话说,在生命周期里面阶段是连续的,在不出错的前提下,比如执行打包(package)时就一定是执行了测试(test)之后再执行。

1.1.5. Maven版本

●Maven2完成 了对Maven1 的重写。重写的首要目的是要提供了强大的 Java构建和包含API的项目,允许Maven被植 入任何地方,尤其是高级别 的产品如IDEs、质量工具、报告工具等这些。Maven2构建生命周期的概 念正式化,其比Maven1更易扩展。

Maven3在2. x基础_上大幅提升性能。可以自动指定父版本,并行生成, 更好的完整性报告、多语言生成、更好地支持M2Eclipse-..

●我们使用Maven3

1.2. 安装

1.2.1. 官网

http://maven.apache.org/

1.2.2. 下载

下载地址:

http://maven.apache.org/download.cgi

1 下载

1.2.3 放置到指定的位置(解压)

D:\Program Files\apache\apache-maven-3.6.3

1.2.4 设置环境变量

M2_HOME = D:\Program Files\apache\apache-maven-3.6.3

Path:追加-> %M2_HOME%\bin

1.2.5 配置maven

  • ​ 在M2_HOME\conf,找到settings.xml

    添加本地仓库

    配置阿里云私服镜像

    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:/Program Files/jarrepository</localRepository>
    
      <pluginGroups>
      </pluginGroups>
      <proxies>
      </proxies>
      <servers>
      </servers>
    
      <mirrors> 
    	<mirror>  
    	   <id>localRes</id>  
    	   <name>localRes maven</name>  
    		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    		<mirrorOf>*</mirrorOf>          
    	 </mirror>
      </mirrors>
      <profiles>
      </profiles>
    
    </settings>

1.3. 安装的验证使用 mvn -v命令

1.4. 名词

●Project: 任何您想bui Id的事物,Maven都可以认为它们是工程。这 些工程被定义为工程对象模型(POM,Poject object Model)。 -一个工 程可以依赖其它的工程;一个工程也可以由多个子工程构成。

●POM: POM (pom. xmI)是Maven的核心文件, 它是指示Maven如何工作的 元数据文件,类似于Ant中的build. xml文件。POM文件位于每个工程. 的根目录中。

●Groupld: groupld是-个工程的在全局中唯一 -的标识符, -般地,它 就是工程名。groupld有利于使用-个完全的包名,将一个工程从其 它有类似名称的工程里区别出来。

Artifact: artifact 是工程将要产生或需要使用的文件,它可以是 jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个 artifact都由groupld和artifact Id组合的标识符唯一识别。需要被 使用(依赖)的artifact都要放在仓库(Repository)中,否则Maven无 法找到(识别) 它们。

Dependency:为了能够build或运行,一个典型的Java工程会依赖其 它的包。在Maven中, 这些被依赖的包就被称为dependency.

dependency-般是其它工程的artifact.

1.5. 仓库

本地仓库:当下载的资源在本地存储的目录位置

远端仓库:用于maven下载资源时候使用,本地仓库如果不存在资源,需要从远端仓库下载。

1)阿里云私服:国内的中心仓库镜像

2)中心仓库: 位于国外的中心仓库

1.6.使用mvn骨架创建项目

1.6.1 常用骨架

1: appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)

2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型)

3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型)

4: appfuse-basic-tapestry(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型)

5: appfuse-core(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型)

6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF的模块化应用原型)

7: appfuse-modular-spring(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型)

8: appfuse-modular-struts(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型)

9: appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型)

10: maven-archetype-j2ee-simple(一个简单的J2EE的Java应用程序)

11: maven-archetype-marmalade-mojo(一个Maven的 插件开发项目 using marmalade)

12: maven-archetype-mojo(一个Maven的Java插件开发项目)

13: maven-archetype-portlet(一个简单的portlet应用程序)

14: maven-archetype-profiles()

15:maven-archetype-quickstart() 1

6: maven-archetype-site-simple(简单的网站生成项目)

17: maven-archetype-site(更复杂的网站项目)

18:maven-archetype-webapp(一个简单的Java Web应用程序)

19: jini-service-archetype(Archetype for Jini service project creation)

20: softeu-archetype-seam(JSF+Facelets+Seam Archetype)

21: softeu-archetype-seam-simple(JSF+Facelets+Seam (无残留) 原型)

22: softeu-archetype-jsf(JSF+Facelets 原型)

23: jpa-maven-archetype(JPA 应用程序)

24: spring-osgi-bundle-archetype(Spring-OSGi 原型)

25: confluence-plugin-archetype(Atlassian 聚合插件原型)

26: jira-plugin-archetype(Atlassian JIRA 插件原型)

27: maven-archetype-har(Hibernate 存档)

28: maven-archetype-sar(JBoss 服务存档)

29: wicket-archetype-quickstart(一个简单的Apache Wicket的项目)

30: scala-archetype-simple(一个简单的scala的项目)

31: lift-archetype-blank(一个 blank/empty liftweb 项目)

32: lift-archetype-basic(基本(liftweb)项目)

33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/])

34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/])

35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/])

36: myfaces-archetype-helloworld(使用MyFaces的一个简单的原型)

37: myfaces-archetype-helloworld-facelets(一个使用MyFaces和Facelets的简单原型)

38: myfaces-archetype-trinidad(一个使用MyFaces和Trinidad的简单原型)

39: myfaces-archetype-jsfcomponents(一种使用MyFaces创建定制JSF组件的简单的原型)

40: gmaven-archetype-basic(Groovy的基本原型)

41: gmaven-archetype-mojo(Groovy mojo 原型)

1.6.2 普通的java项目

创建项目的时候需要提供

1) 组织id

-DgroupId=com.neuedu

2)资源id

-DartifactId=quickstart

3)使用什么骨架 (maven-archetype-quickstart)

-DarchetypeArtifactId=maven-archetype-quickstart

4)是否使用交互模式 默认true

-DinteractiveMode=true

完整命令

shell
mvn archetype:generate  -DgroupId=com.neuedu -DartifactId=quickstart -DarchetypeArtifactId=maven-archetype-quickstart

1.6.1.3. 目录结构

编译项目

进入到quickstart项目

执行编译命令

执行骨架中自带的App.java

1)进入classes目录

2)执行java命令

1.6.1.4. J2ee的项目

mvn archetype:generate -DgroupId=com.neuedu -DartifactId=mywebpro -DarchetypeArtifactId=maven-archetype-webapp

1.6.1.4.1. 目录机构

1.6.2. 编译

mvn compile

1.6.3. Test测试

mvn test

1.6.4. Clean清除

mvn clean

删除已经产生的目标文件(target目录)

1.6.5. Package打包

普通的Java项目:Jar

mvn package

war(j2ee项目可以发布到tomcat)

mvn package

1.6.6. Install安装

将资源安装到本地仓库,使当前机器其他项目可以直接依赖使用。

Mvn install

2020-11-29_094112

1.7. 本地pom

2. Idea使用maven

设置新打开的时候 不是最后一次编辑的项目

File-->Settings

2.1. Idea集成maven插件(修改配置项)

Idea : 2019.3.3

Maven:3.6.3 (可以使用maven 阿里云镜像)

1 修改下settings.xml指定的 本地仓库

2 配置阿里云镜像

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  1 本地仓库: --> <localRepository>D:/Program Files/jarrepository</localRepository>  <pluginGroups>  </pluginGroups>  <proxies> </proxies>  <servers> </servers>  <mirrors>	<!--2 阿里云的镜像 -->	<!--<mirror>    <id>alimaven</id>    <name>aliyun maven</name>    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>	  <mirrorOf>central</mirrorOf>       </mirror> --> </mirrors>  <profiles>   </profiles> </settings>

2020-11-29_094747

Ø Maven home directory:maven的安装目录,跟环境变量 M2_HOME的值一样

Ø User Setting File:指定当前用户的配置文件 %M2_HOME%\conf\setttings.xml

Ø Local Repository:本地仓库 ,设置完配置文件settings.xml默认自动更新

2.2. 在idea中创建maven项目

2.2.1. 普通的Java工程

提供用于创建maven项目的groupdid、artifactId、version

Groupdid:com.neuedu

artifactId:java1-quickstart

Version: 1.0-SNAPSHOT

2020-11-29_102806

2020-11-29_102951

2020-11-29_103059

2.2.2. 普通的J2EE工程

步骤同上

选择骨架:

img

img

img

2.2.2.1. 发布到jetty

https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html

在工程的pom.xml的plugins节点增加

img

执行jetty插件提供的run:goal

配置一个maven命令

1 添加环境

img

2 选择环境类型

img

3 设置待执行的命令 jetty:run

img

4 启动

img

img

img

发布到Tomcat插件

参考:https://www.cnblogs.com/h--d/p/9904920.html

2.3. 有效pom

本地POM:当前使用的项目中的pom.Xml

超级POM:在maven安装录\lib\maven-model-builder-3.6.0.jar

img

有效的POM:最终实际使用的POM文档

img

2.4.JDBCUtil 安装到本地仓库

在其他项目中使用jdbcutil

2020-11-29_110732

xml
<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.neuedu</groupId>
   <artifactId>testmvn</artifactId>
   <version>1.0</version>

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

   <dependencies>
       <dependency>
           <groupId>com.neuedu</groupId>
           <artifactId>jdbcutil</artifactId>
           <version>1.0</version>
                 </dependency>


       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
       </dependency>

      <!-- <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>8.0.20</version>
       </dependency>-->

   </dependencies>

</project>

2.5 测试代码

java
package com.neuedu;

import com.neuedu.util.JDBCUtil;
import org.junit.Test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/ 
 * 项目:      testmvn
 * 类名:       AccountTest
 * 创建时间:  2020/11/29  10:49
 * 描述 :
 * 作者 :     张金山
 * QQ :     314649444
 * Site:      https://jshand.gitee.io
 */
public class AccountTest {



    @Test
    public void testQuery(){
        String sql = "select * from account";

        List accountList = JDBCUtil.executeQuery(sql,(rs)->{
            Map account = new HashMap<String,Object>();
                account.put("id",rs.getInt("id"));
                account.put("accountName",rs.getString("account_name"));
                account.put("amout",rs.getBigDecimal("amout"));


            return account;
        });

        for (Object o : accountList) {
            System.out.println(o);
        }
    }


}

3. Maven的依赖和坐标

Maven坐标的搜索

https://mvnrepository.com/

3.1. 依赖

依赖的配置

< dependency > < groupId >org.apache.commons</ groupId > < artifactId >commons-lang3</ artifactId > < version >3.9</ version > </ dependency >

img

img

3.2. 依赖的传递性

A->B

B->C(system)

相当于是:

A-B

A-C(system)

img

验证依赖原则

3.2.1. 1 创建项目

img

3.2.2. 2 设置依赖(最短路径)

img

3.2.2.1. 设置C的依赖

< dependency > < groupId >org.apache.commons</ groupId > < artifactId >commons-lang3</ artifactId > < version >3.1</ version > </ dependency >

3.2.2.2. 设置B的依赖

< dependency > < groupId >com.neuedu</ groupId > < artifactId >C</ artifactId > < version >1.0</ version > </ dependency >

3.2.2.3. 设置D的依赖

< dependency > < groupId >org.apache.commons</ groupId > < artifactId >commons-lang3</ artifactId > < version >3.8.1</ version > </ dependency >

3.2.2.4. 设置A的依赖

< dependency > < groupId >com.neuedu</ groupId > < artifactId >B</ artifactId > < version >1.0</ version > </ dependency > < dependency > < groupId >com.neuedu</ groupId > < artifactId >D</ artifactId > < version >1.0</ version > </ dependency >

3.2.2.5. 将构建(A、B、C、D安装到仓库)

分别执行四个项目的install,将构建安装到本地仓库,使依赖能够找到,安装的顺序,被依赖的有限安装 D-C-B-A顺序

img

最终的验证,添加命令:

img

dependency:tree #打印出tree形式

img

dependency:list #打印出列表形式

img

dependency:analyze #打印出列表中直接依赖的类库

img

3.2.3. 2 设置依赖(最短路径)

img

修改A中的依赖

< dependencies > < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >4.11</ version > < scope >test</ scope > </ dependency > < dependency > < groupId >com.neuedu</ groupId > < artifactId >C</ artifactId > < version >1.0</ version > </ dependency > < dependency > < groupId >com.neuedu</ groupId > < artifactId >D</ artifactId > < version >1.0</ version > </ dependency > </ dependencies >

使用dependency:tree验证依赖的情况

img

调整C、D的依赖顺序

< dependencies > < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >4.11</ version > < scope >test</ scope > </ dependency > < dependency > < groupId >com.neuedu</ groupId > < artifactId >D</ artifactId > < version >1.0</ version > </ dependency > < dependency > < groupId >com.neuedu</ groupId > < artifactId >C</ artifactId > < version >1.0</ version > </ dependency > </ dependencies >

验证结果

img

3.3. 可选依赖

A-C-commons-lang3

没有optional属性

img

在C的依赖中添加

< optional >true</ optional >

img

3.4. 依赖的优化(依赖的排除)

Exclusion 内部指定排除的 groupId 、 artifactId , 不需要指定版本号

img

4. Maven多项目开发

img

4.1. 聚合项目

4.1.1. 聚合项目的形式:

img

img

4.1.2. 创建 GroupProject 选择骨架 quickstart

img

img

4.1.3. GroupPA 子项目创建( Parent不是必须 )

img

4.1.4. GroupPB的创建过程同上.

4.1.5. 在聚合项目(GroupProject)中注册Module.

< modules > < module >GroupPA</ module > < module >GroupPB</ module > </ modules >

4.1.6. 修改聚合项目的打包方式,编程POM(默认是jar)

< packaging >pom</ packaging >

4.1.7. 聚合项目完成pom.xml

 <?  xml version  ="1.0"   encoding  ="UTF-8"  ?> *  *  < 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 http://maven.apache.org/xsd/maven-4.0.0.xsd" >  < modelVersion >4.0.0</ modelVersion >   < groupId >com.neuedu</ groupId >  < artifactId >GroupProject</ artifactId >  < version >1.0-SNAPSHOT</ version >  < packaging >pom</ packaging >  < modules >   < module >GroupPA</ module >   < module >GroupPB</ module >  </ modules >   < name >GroupProject</ name >   <!--   *FIXME change it to the project's website   --> *   < url >http://www.example.com</ url >   < properties >   < project.build.sourceEncoding >UTF-8</ project.build.sourceEncoding >   < maven.compiler.source >1.7</ maven.compiler.source >   < maven.compiler.target >1.7</ maven.compiler.target >  </ properties >   < dependencies >   < dependency >    < groupId >junit</ groupId >    < artifactId >junit</ artifactId >    < version >4.11</ version >    < scope >test</ scope >   </ dependency >  </ dependencies >   < build >   < pluginManagement > <!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> *     < plugins >      <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> *      < plugin >      < artifactId >maven-clean-plugin</ artifactId >      < version >3.1.0</ version >     </ plugin >      <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> *      < plugin >      < artifactId >maven-resources-plugin</ artifactId >      < version >3.0.2</ version >     </ plugin >     < plugin >      < artifactId >maven-compiler-plugin</ artifactId >      < version >3.8.0</ version >     </ plugin >     < plugin >      < artifactId >maven-surefire-plugin</ artifactId >      < version >2.22.1</ version >     </ plugin >     < plugin >      < artifactId >maven-jar-plugin</ artifactId >      < version >3.0.2</ version >     </ plugin >     < plugin >      < artifactId >maven-install-plugin</ artifactId >      < version >2.5.2</ version >     </ plugin >     < plugin >      < artifactId >maven-deploy-plugin</ artifactId >      < version >2.8.2</ version >     </ plugin >      <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> *      < plugin >      < artifactId >maven-site-plugin</ artifactId >      < version >3.7.1</ version >     </ plugin >     < plugin >      < artifactId >maven-project-info-reports-plugin</ artifactId >      < version >3.0.0</ version >     </ plugin >    </ plugins >   </ pluginManagement >  </ build > </ project >

4.2. 项目的继承

子项目可以使用parent标签继承父项目中的配置

img

5. 私服nexus

img

img

5.1. 1 介绍

中心仓库:https://repo1.maven.org/maven2/

私服的好处:

img

5.2. 2 安装

使用nexus搭建私服 (需要Java支持,JAVA_HOME)

img

5.2.0.1. 2.11的安装步骤

1)在网盘中下载zip包,并解压开

img

5.2.0.2. 进入bin目录,将nexus注册成服务

nexus-maven\nexus-2.11.1-01\bin

img

5.2.0.3. 执行 install 将nexus注册成服务。

img

5.2.0.4. 启动服务(下次不需要)。

打开系统服务,我的电脑--管理 --服务和应用程序-服务

img

或者是“services.msc”

img

找到neuxs服务,右键“启动”

img

5.2.0.5. 验证nexus

8081服务查看仓库的配置

http://127.0.0.1:8081/nexus

img

可以通过管理角色进行管理 admin/admin123

img

img

5.3. 3 仓库

5.3.0.1. Host: 宿主仓库:

img

Releases:发布的正式版本 一般情况发布后不修改

Snapshots:快照的版本 快速迭代的更新,可能代码不稳定

3rd : 第三方的类库

5.3.0.2. Proxy: 代理仓库:

代理其他仓库的意思:

img

5.3.0.3. Virtual: 虚拟仓库:

virtual 虚拟仓库:用于适配 Maven 1;

5.3.0.4. group: 分组仓库:

将多个仓库以统一的地址对外公开

http://127.0.0.1:8081/nexus/content/groups/public/

img

5.3.0.5. 上传自定义的列库

1) 使用浏览器管理员的方式

img

img

http://127.0.0.1:8081/nexus/content/repositories/releases/com/neuedu/GroupPA/1.0/

img

5.3.0.6. 使用deploy命令上传到版本库

1 ) 配置认证信息

在settings中添加server节点

img

3)在需要发布的项目中配置发布管理器

< distributionManagement >  < repository >    <!-- id   需要 *跟 *settings.xml   文件中配置用 *户 *名、密 *码 *的 *id *保持一致 *--> *    < id >deploymentRepo</ id >   < name >deploymentRepo</ name >   < url >http://127.0.0.1:8081/nexus/content/repositories/releases/</ url >  </ repository > </ distributionManagement >
  1. 执行deploy命令

Deploy到正式版本库的时候可能出现 400,原因是服务器拒绝。

1)version中存在 snapshots

2)服务器中已经存在相同版本的内容(需要设置允许重复发布)

img

img

Released under the MIT License.