首页 > 编程知识 正文

maven的site,Maven是啥

时间:2023-05-05 05:20:06 阅读:218403 作者:2888

更多精彩技术分享请浏览本人博客:https://blog.csdn.net/wohiusdashi   目录

1. Maven简介    
  1.1. 简述    
  1.2. Maven实现的核心价值    
  1.3. 定义与缩略语    
  1.4. 项目构建    
  1.5. 依赖管理    
  1.6. maven目录说明    
  1.7. maven坐标    
2. Maven私服    
  2.1.私服简介    
  2.2.仓库简介    
  2.3.私服配置    
  2.4.将本地项目发布到私服    
  2.5.查看私服仓库    


1. MAVEN简介
1.1.    简述


Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。wwdhb使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven是优秀的依赖管理工具,能轻松地解决繁杂的Java类库的依赖关系
Maven是标准化的构建流程。Maven暴露了一组一致、简洁的操作接口,能帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来,使用maven现有的成熟的、稳定的组件也能简化构建系统的复杂度。
Maven是项目信息管理工具,能有效管理原本分散在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址等。另外还能通过Maven自动生成项目站点、项目文档、测试报告等非常具有价值的项目信息。


1.2.    Maven实现的核心价值


  1.简单:使用简洁、一致的操作接口,进行快速的项目构建,随时随地的地从源代码构建出最终的产品。
  2.促进团队成员的交流与反馈:与版本控制系统结合后,所有人都能执行最新的构建并快速得到反馈。自动生成的项目报告也能帮助成员了解项目的状态,促进团队的交流。
  3.测试驱动开发(TDD):测试是Maven生命周期中最重要的组成部分之一,并且Maven有现成的成熟插件支持业界流行的测试框架,如Junit和TestNG。
  4.持续集成(CI):CI的前提是源码管理系统和构建系统,使用Maven后,持续集成会变得更加方便。
  5.富有信息的工作区:使用Maven发布的项目报告站点,并配置你需要的项目报告,如测试覆盖率报告,都能帮你把信息推送到开发者眼前。


1.3.    定义与缩略语


名称    含义
TDD    test drive develop
POM    project object model
CI    continuous integration


1.4.    项目构建


项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程。
清理阶段对应maven的命令:clean,清理输出的class文件。
编译阶段对应maven的命令:compile,将java代码编译成class文件。
打包阶段对应maven的命令:package,工程打成jar包、war包。


1.5.    依赖管理


什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那边我们说这个java项目依赖了这些第三方的jar包。
什么是依赖管理?maven依赖管理就是统一管理jar包之间的依赖关系。


1.6.    maven目录说明


1.7.    maven坐标


在平面几何中坐标(x,y)可以标识平面中唯一的一点。在我们开发Maven项目的时候,需要为其定义适当的坐标,这是Maven强制要求的。在这个基础上,其他Maven项目才能应用该项目生成的构件。 
Maven坐标详解:
groupId:组织标识(包名)
artifactId:项目名称
version:项目的当前版本
packaging:项目的打包方式,最为常见的jar和war两种,默认jar

样例:

2.    MAVEN私服
2.1.    私服简介


私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。当Maven需要下载构件的时候,它从私服请求,如果 私服上不存在该构件,则从外部远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
私服的好处:
a、节省自己的外网带宽
b、加速Maven构建
c、部署自己内部的第三方构件
d、提高稳定性,增强控制
e、降低中央仓库的负荷。


2.2.    仓库简介


 
如上图所示:
对于Maven来说,仓库只分为两类:本地仓库和远程仓库。
当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果 本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,Maven就会去远程仓库查找,发现需要的构件,下载到本地仓库再使用。如果本地仓库和远程仓库都没有,Maven就会报错。


2.3.    私服配置


2.3.1、配置镜像地址
在settings.xml 文件的 mirrors 内添加以下镜像地址
     <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>

2.3.2、配置认证信息
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.3.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>central</id>
          <url>http://central</url>
          <releases><enabled>true</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>

2.3.4、配置activeProfile
在settings内添加以下配置
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

2.3.5、IDEA配置maven
打开IDEA,按 Ctrl + Alt + S 打开配置界面,在搜索栏中输入maven找到maven配置位置,如下图:
 
2.3.6、配置自动部署构件
在pom.xml 中的 project 内添加自动部署构件配置
 <distributionManagement>
    <repository>
        <id>nexus_release</id>
        <name>release</name>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus_snapshots</id>
        <name>snapshots</name>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

2.4.    将本地maven项目发布到私服

在IDEA中打开maven菜单,双击deploy按钮
如下图:

2.5.    查看私服仓库


2.5.1、在浏览器中打开 http://localhost:8081/ ,点击左边的Browser按钮,再点击右边的Maven-public ,如下图:

2.5.2、在右边的目录中找到刚刚发布的项目,如我发布的为NexusTest

2.5.3、点击左边的Jar文件可以在右边看到相应的依赖地址,可以添加pom.xml文件
中下载相应的依赖,如下图:

 

 更多精彩技术分享请浏览本人博客:https://blog.csdn.net/wohiusdashi

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。