Maven-教程--Maven生命周期

Maven-教程--Maven生命周期

      • 八.Maven的生命周期
            • 第一个命令:mvn clean
            • 第二个命令: mvn complie 编译java源文件 输出目录target
            • 第三个命令:mvn package
            • ==第四个命令: mvn install 把项目发布到本地仓库==
            • 第五个命令: mvn deploy,部署
      • 九.Maven的依赖管理
            • 9-1坐标定义
            • 9-2查询其它构件的坐标
            • 9-3依赖管理
            • ==9-4依赖版本冲突解决(重点)==
            • 9-4-1 问题?
            • 9-4-2依赖调解原则
            • 9-4-3 如何排除依赖
      • 十.IDEA创建分布式工程(Maven分模块构建工程)
            • 10-1 需求:
            • 10-2分模块构件架构(画图说明)
            • 10-3步骤实现
      • 十一.Maven搭建私服(了解)
            • 11-1私服部署结构
            • 11-2安装私服
            • 11-3卸载nexus
            • 11-4运行nexus
            • 11-5仓库类型
            • 11-6使用nexus
          • 将项目发布到私服
            • 1、在自己电脑的maven的setting.xml中配置
            • 3、准备将自己工程的jar发布到nexus私服中。
          • 从私服下载jar包
      • 十二.IDEA创建javaweb工程整合SSM
            • 第一步:创建mavenjavaweb工程
            • 第二步:在pom.xml文件中引入相关的坐标依赖(SpringMVC、Spring、mybatis、mysql、c3p0、servler-api、jstl)
            • 第三步:引入相关的配置文件(springmvc.xml applicationContext.xml sqlMapConfig.xml db.properties )
            • 第四步:编写web.xml文件
            • 第五步:编写接口文件
            • 第六步:编写实现类
            • 第七步:编写Controller层
            • 第八步:编写jsp页面

注:接Maven教程(1)Maven的生命周期

八.Maven的生命周期

第一个命令:mvn clean

清除target目录的文件

Maven-教程--Maven生命周期_第1张图片

第二个命令: mvn complie 编译java源文件 输出目录target

Maven-教程--Maven生命周期_第2张图片

第三个命令:mvn package

如果java项目 jar包
如果javaweb项目 war
Maven-教程--Maven生命周期_第3张图片

第四个命令: mvn install 把项目发布到本地仓库

Maven-教程--Maven生命周期_第4张图片

第五个命令: mvn deploy,部署

▅ 编译命令 mvn compile
编译后 .class文件在 out下 (这个命令只会对java源程序编译, 不会编译测试代码 , 编译测试类 mvn test-compile , 编译后.class 文件在 out)

▅ 测试命令 mvn test
执行所有测试用例方法, 重新编译

▅ 清除命令 mvn clean
清除target目录 (清除所有编译结果或者打包结果 ),清理后编译。

▅ 打包命名 mvn package
java项目生成 jar包, web项目生成war包

九.Maven的依赖管理

9-1坐标定义

maven对每个工程通过坐标管理。
groupId:定义当前Maven项目名称
artifactId:定义项目模块
version:定义当前项目的当前版本

9-2查询其它构件的坐标

如何查询坐标
使用网站搜索
http://search.maven.org/
http://mvnrepository.com/
网站搜索示例:
Maven-教程--Maven生命周期_第5张图片
Maven-教程--Maven生命周期_第6张图片

9-3依赖管理

Maven-教程--Maven生命周期_第7张图片

9-4依赖版本冲突解决(重点)
9-4-1 问题?

当一个项目依赖的构件比较多时,它们相互之前存在依赖,当你需要对依赖版本统一管理时如果让maven自动来处理可能并不能如你所愿,如下例子:


  org.apache.struts
  struts2-spring-plugin
  2.3.24



  org.springframework
  spring-context
  4.2.4.RELEASE

org.apache.struts依赖spirng-beans-3.0.5,spring-context依赖spring-beans-4.2.4,但是发现spirng-beans-3.0.5加入到工程中,而我们希望spring-beans-4.2.4加入工程。

9-4-2依赖调解原则

maven自动按照下边的原则调解:
▅ 1、第一声明者优先原则
在pom文件中谁先声明以谁为准。
测试:
如果将上边struts-spring-plugins和spring-context顺序颠倒,系统将导入spring-beans-4.2.4。

▅ 2、路径近者优先原则
例如:A-> spirng-beans-4.2.4,A->B-> spirng-beans-3.0.5,则spirng-beans-4.2.4优先
测试:
在本工程中的pom中加入spirng-beans-4.2.4的依赖,根据路径近者优先原则,系统将导入spirng-beans-4.2.4:

9-4-3 如何排除依赖

方法一:可以通过排除依赖方法辅助依赖调解:
比如struts2-spring-plugin中添加排除spring-beans:

<!-- struts2-spring-plugin依赖spirng-beans-3.0.5 -->
<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId> struts-spring-plugin</artifactId>
  <version>3.3.24</version>
  <!-- 排除 spring-beans-->
  <exclusions>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
    </exclusion>
  </exclusions>
</dependency>

方法二:锁定版本(推荐使用)
面对众多的依赖,有一种方法不用考虑依赖路径、声明优化等因素可以采用直接锁定版本的方法确定依赖构件的版本,此方法在企业开发中常用:

  
    
    
      org.springframework
      spring-beans
      4.2.4.RELEASE
    
  

十.IDEA创建分布式工程(Maven分模块构建工程)

10-1 需求:

一个工程非常大的时候,多人协助开发。
为了提高开发效率,将整个工程拆分成多个模块工程,每个团队开发,开发完成将工程打成jar包发布仓库中,其它团队成员连接仓库下载其它模块的jar(class),只需要编译本模块的clas即可。

10-2分模块构件架构(画图说明)

本文使用intelliJidea 14

在idea中创建一个分层(视图层、业务逻辑层、数据访问层)的项目步骤如下:
1.创建一个project,idea在创建project的时候会默认创建一个module,此时,给这个project和module命名(比如hello_client,表示这是项目的客户端也就是视图层),并且指定项目存放路径。
2.新建一个module,新建的时候路径指定为和上面的hello_client同级。命名为hello_service,表明这是项目的业务逻辑层。
3.新建一个module,命名为hello_dal,表示这是项目的数据访问层,同上,此module的目录指定为和hello_client、hello_service同级。
4.此时在project窗口中会看到并列的三个module。开发的时候就可以在不同的层次上放置不同的代码。如下图:
Maven-教程--Maven生命周期_第8张图片
5.在项目中hello_client会引用hello_service的代码,而hello_service会引用hello_dal的代码。在idea中添加引用的方式为:
选中任意一个module,按F4进入project structure;选择左侧的modules菜单;选择中间的hello_client,选中右侧的dependencies选项卡,点击右侧的绿色+按钮,选择modeule dependecy,在弹出的选择框中选择hello_service。这样就为hello_client添加了hello_service的引用。直接在hello_client中引用hello_service的代码即可。同理,添加hello_service对hello_dal的引用。
Maven-教程--Maven生命周期_第9张图片

10-3步骤实现

第一步:创建父工程 打包方式为POM
Maven-教程--Maven生命周期_第10张图片
备注:父工程不写业务:统一依赖版本
Maven-教程--Maven生命周期_第11张图片
第二步:创建springmvc子工程(打包成war包)
Maven-教程--Maven生命周期_第12张图片
第三步:创建spring子工程(打成war包)同上
第四步:注意事项
创建完毕后 父工程中pom.xml文件中
Maven-教程--Maven生命周期_第13张图片
Jar工程默认是没有

<packaging>jar</packaging>

在这里插入图片描述

十一.Maven搭建私服(了解)

11-1私服部署结构

Maven-教程--Maven生命周期_第14张图片
在公司的局域网内部署一台服务器,服务器上安装maven私服软件。
服务器上存储了maven仓库。

在私服环境下本地项目找jar流程是:
1、先找本地仓库
2、如果本地仓库没有从私服找
3、如果私服没有从中央仓库下载,下载成功将jar向私服和本地仓库都存一份。

11-2安装私服

下载Nexus, 下载地址:http://www.sonatype.org/nexus/archived/

下载:nexus-2.12.0-01-bundle.zip

解压nexus-2.12.0-01-bundle.zip,本教程将它解压在F盘,进入bin目录:
Maven-教程--Maven生命周期_第15张图片
cmd进入bin目录,执行nexus.bat install
在这里插入图片描述

11-3卸载nexus

cmd进入nexus的bin目录,执行:nexus.bat uninstall

11-4运行nexus

方法1:
cmd进入bin目录,执行nexus.bat start

方法2:
直接启动nexus服务
在这里插入图片描述
查看nexus的配置文件conf/nexus.properties
默认用户名和密码 :
admin/admin123
Maven-教程--Maven生命周期_第16张图片

11-5仓库类型

Maven-教程--Maven生命周期_第17张图片
1、hosted:宿主仓库,自己项目的jar要放到hosted类型的仓库中。

2、proxy:代理仓库,代理中央仓库

3、virtual:虚拟仓库,存储了maven1的构件,一般不用。

4、group:仓库组,将一些仓库组成一个组,自己项目连接仓库组去下载jar包。
平常开发中都去连接仓库组,仓库组中包括:hosted、proxy等。Maven-教程--Maven生命周期_第18张图片

11-6使用nexus

在nexus搜索jar包
在nexus加入jar包索引。

方法1:
连网下载

你可能感兴趣的:(javaEE下,Maven-教程,JavaEE下,Maven,Maven生命周期,Maven依赖管理)