maven入门基础知识

来源:互联网 发布:网络推广代理公司 编辑:程序博客网 时间:2024/05/01 03:19

一、 使用需求

jar包的依赖与管理
项目中有很多的jar包,同时出现了很多的问题,
比如:不能确定jar包的正确性,有的人从官网上下载jar包,而有的人从百度上下载,造成了jar包的正确性不确定。
比如:不同版本的技术框架管理,Struts框架有Struts1.x和Struts2.x,Spring有Spring3.X和Spring4.X等,不同版本的技术框架用法不同,作用不同。
比如:jar包的依赖性,我们可能不知道jar包与jar包之间的依赖管理等。
自动构建发布项目
–软件开发:可行性分析、需求分析、软件设计、编码、发布、运行维护等步骤。
–软件构建:软件开发完毕,需要构建成一个产品来发布。
构建步骤:
编译–>测试–>报告–>打包–>安装–>部署到远程
使用maven可以用一个命令自动构建软件项目。

二Maven介绍

概念
Maven是apache旗下采用纯java编写的开源项目管理工具,Maven采用一种叫做Project Object Model(POM)概念来管理项目,所有的配置信息都定义在一个叫做pom.xml的文件中,通过该配置文件,Maven可以管理项目的整个声明周期,包括:清除、编译、测试、打包、部署等等。
POM思想,将整个项目当成一个对象,即项目对象模型。
Maven与ant和svn的区别
1. maven和ant的区别:
都是软件构建管理工具,但是maven更加强大,取代的ant,尤其是拥有jar包声明式依赖和jar包仓库功能。
2. maven与svn的区别:
maven是软件构建工具,软件的源码已经完毕,需要构建,部署和发布。
而svn是软件的版本管理工具,是协同开发工具。在svn仓库中有源码的保存,历史版本的备份和各个版本的修改情况。
Maven目录结构
这里写图片描述

lib: 共享库,maven软件依赖的jar包。
boot: 该目录下有plexus-classworlds-2.5.2.jar文件,该jar文件是jar包下载引擎,通过该工具下载jar包。
–项目第三方的jar包
–maven本身的软件构建的声明周期的插件jar包,默认是没有的,包括清除插件,编译插件,打包插件等等。
conf: settings.xml:maven配置文件,包括本地仓库的地址和服务器的验证。
bin: maven可以执行的命令。

Maven的安装配置
1) 在apache官网上下载maven文件(apache-maven-3.3.9.zip),解压后放在某个盘下的根目录,比如D:\apache-maven-3.3.9。
2) 配置环境变量M2_HOME: D:\apache-maven-3.3.9,并将M2_HOME加入到Path变量中
%M2_HOME%\bin
3)在命令提示符中输入mvn -version出现如图:
这里写图片描述

创建满足maven规约的项目
约定优于配置
按照maven规定的目录结构,创建java项目。(第一次建议手动创建)
–|src
    –|mian
        –|java:包和类
        –|resource:资源文件
    –|test
        –|java
        –|resource
–|target:可以有可以无,是src编译后输出的目录
–|pom.xml:项目对象模型,maven的核心配置文件

构建软件生命周期的常用命令:
clean:清除 mvn clean
compile:编译 mvn compile
test:测试 mvn test
package:打包 mvn package
install:安装到本地仓库 mvn install
deploy:部署,部署到私服(局域网或者外网) mvn deploy

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">    <!-- pom的版本 -->    <modelVersion>4.0.0</modelVersion>    <!--组id        maven用id坐标概念来识别jar包        坐标=组id+artifactId+version    -->    <groupId>cn.itcast.maven</groupId>    <!--构建物id:产品id -->    <artifactId>Hello</artifactId>    <!--版本,SNAPS HOP:测试版本或者镜像版本 release:发行版本,最终版本-->    <version>0.0.1-SNAPSHOP</version>    <!-- 发布的是jar包,默认是jar包,也可以是war包 -->    <packaging>jar</packaging>    <!-- 项目的名称,可以不写 -->    <name>Hello</name>        <dependencies>            <!-- jar包声明式依赖 -->            <dependency>                <groupId>junit</groupId>                <artifactId>junit</artifactId>                <version>4.9</version>                <!-- 依赖jar包使用的范围,                    test:测试时候使用该jar包                    除此之外还有compile(默认):编译                    -->                <scope>test</scope>            </dependency>        </dependencies></project>

MyEclipse集成maven
1. 配置MyEclipse
MyEclipse集成了maven
这里写图片描述
也可以指定版本
这里写图片描述

配置usersettings
这里写图片描述
在MyEclipse之中创建java项目
1. file–>new–>other–>MyEclipse–>Maven4MyEclipse–>Maven Project
这里写图片描述

2. 创建简单的满足maven规约的java项目
这里写图片描述
3. 填写项目信息,完成
这里写图片描述

搭建maven私有服务器
Nexus介绍:
是开源框架,属于sonatype机构,用该框架架设maven私有服务器。
Nexus环境搭建(war包版本)
–从www.sonatype.org/nexus/下载
–把nexus.war放到tomcat的webapp下。
–浏览且登录,账号:admin,密码:admin123
http:/localhost:8080/nexus-*版本
Nexus仓库分类
–hosted:宿主仓库,该仓库属于该公司私有的。
–|3rd part:第三方的jar包,可能是个小框架,没办法放入到中心仓库的jar包。
    –|snapshop:测试版本或者镜像版本
    –|release:发行版本
–proxy:代理仓库,代理中心仓库的jar包
–public:仓库组,虚拟的概念,可以包含其他的仓库

通过私服上传下载jar包
–上传jar包
    –直接上传jar包
        通过网站资金额上传jar包。
    –把MyEclipse项目上传到私服
–从私服中依赖jar包(下载jar包)
如果没有私服,本地仓库找不到则直接访问中心仓库。
如果有私服,则访问顺序为:本地仓库私服中心仓库
更改pom.xml配置。
这里写图片描述

1 0
原创粉丝点击