A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuhaohong 初级黑马   /  2018-6-7 10:11  /  1011 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yuhaohong 于 2018-6-7 16:02 编辑

Maven简介
  • 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的
  • 通过maven管理的项目体积会变得很小,没有jar,jar包都在maven管理的文件夹里(本地仓库),项目从那里引用jar包
项目一键构建
  • cmd进入工程目录-->mvn tomcat:run--->项目运行了
  • 编码-->编译-->测试(junit)-->运行-->打包-->部署
  • 把war包放到tomcat的webapps文件夹里启动tomcat就可以运行了
maven的好处
  • 对jar包的统一管理,节省空间
  • 一键构建: 通过mvn tomcat:run就可以把项目跑起来
  • 可以跨平台:maven纯java开发的
  • 应用在大型项目中可以提高开发效率
    • Maven的分模块开发
    • 每个模块引用别的模块的jar包,这样就只需要关注自己的模块,同时也不用编译别的模块源码

Maven下载,安装,配置下载与安装Maven环境变量配置
  • 要配置jdk,maven3.3.9这个版本所需的jdk版本必须要1.7以上
    • java开发的项目都需要依赖jdk的
  • 最终要运行的是maven软件中bin目录的mvn命令,所以要配置maven的环境变量,在系统变量添加
    • 环境变量的名称:MAVEN_HOME
    • 变量值:就是maven软甲解压的目录C:\software\apache-maven-3.3.9
    • 在把%MAVEN_HOME%/bin配置到path中
  • 配置环境变量目的:在任何地方都可以运行某个命令
  • 运行mvn tomcat:run时需要去互联网下载插件
    • 如果不能上网,我们可以拷贝一个本地仓库到某个文件夹,然后通过maven核心配置文件(settings.xml)配置查找路径去搜索资源
    • <localRepository></localRepository>标签默认是注释掉的,默认地址:${user.homr}.m2/repository

Maven仓库
  • 本地仓库
  • 远程仓库(私服)----公司维护
  • 中央仓库 maven团队维护----两个亿
入门程序Maven项目的目录结构
  • 项目工程目录下:
    • src文件夹
      • main文件夹(主目录)
        • java---Java代码
        • resources---项目的配置文件
        • webapp
      • test文件夹(测试目录---junit测试代码)
        • java---java代码
        • resources---junit测试用到的配置文件,如果立面没有,默认会从main目录下的resources里找

    • pom.xml项目核心配置文件

Maven的常用命令
  • clean---清理编译的文件
    • mvn clean
  • compile---编译了主目录(main)的文件
    • mvn compile
  • test---编译并运行了test目录的代码
    • mvn test
  • package---打war包(需要在pom.xml中配置)
    • mvn package
  • install---就是把项目发布到本地仓库
    • mvn install
  • tomcat:run---一键启动
Maven的生命周期(了解)
  • compile--->test--->package--->install
  • deploy(发布到私服)
  • 三种生命周期
    • clean生命周期
      • clean
    • default生命周期
      • compile
      • test
      • package
      • install
    • site生命周期
      • site


命令和生命周期的阶段的关系
  • 不同的生命周期的命令可以同时执行
    • mvn clean package

项目构建
  • 如果eclipse切换了新的工作空间,要修改编码环境utf-8
  • jsp的编码也要改成utf-8
  • svn和mvn都是一个工具,eclipse使用它们都需要安装插件
    • M2E插件(Maven to Eclipse)

集成m2e
  • eclipse mark2版本自带了maven插件了
  • 默认集成的是3.3.2且默认本地仓库是user.m2.repository.我们需要配置成我们自己的
  • Maven--->Installations--->add--->添加自己的maven
    • 然后勾选上--apply
  • Maven--->User Settings--->User Settings
    • 选择自己maven的配置文件
    • 修改后,仓库的位置也会对应的改变

构建新项目
  • 新建maven项目
    • 右键--->new--->other--->maven--->maven project
  • 跳过骨架,如果不跳过骨架选择,创建出的项目目录是不全的
    • create a simple project(skip archetype selection)勾选
  • 填写坐标
    • Group Id:公司或者组织名称com.itcast
    • Artifact Id: 项目或者模块名
    • Version:版本0.0.1-SNAPSHOT
    • package:打包方式(war)
  • 处理红色叉号
    • 创建工程会出现红色的叉,我们要处理掉
    • 手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件
    • src/main/webapp/WEB-INF/web.xml
  • 处理编译版本
    • 在pom.xml中添加如下代码
    • 添加后右键工程--->maven--->update project
    [XML] 纯文本查看 复制代码
    <build>
        <!-- 配置了很多插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>  
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>


      6. 创建一个servlet
  • 创建后会报错,我们需要修改web.xml文件
    • 删除web.xml头部重复的代码
    • xmlns=http://java.sun.com/xml/ns/javaee
  • servlet文件也会报错,原因是缺少了包,我们要添加jar包
    • 在pom中添加如下代码
    • 添加后jar包会添加到项目中
    [XML] 纯文本查看 复制代码
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>



  • 启动项目
    • 右击项目---run as –maven build …
      • Goals中输入tomcat:run
      • 点击run


  • 如果遇到jsp解析报错:
    • 检查有没有引入jsp依赖
    • 如果引入了jsp依赖还是报错,修改maven默认的启动tomcat插件,用tomcat7
    [XML] 纯文本查看 复制代码
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
    </plugin>


依赖管理---整合struts2添加依赖
  • 打开maven仓库的视图:
    • 右键pom.xml文件--->maven--->add dependency
    • 在pom.xml文件里右键--->maven--->add dependency
    • 坐下叫视图的dependencies
  • 在maven仓库视图中点击add添加依赖,前提是需要给maven创建索引
  • 给maven创建索引:
    • window--->show view--->other--->maven repositories
    • 在view视图中,右键Local Repositories下的Local Repository--->rebuild index
  • 创建了索引后就可以从仓库里添加jar包了
    • 添加jsp依赖
    • servlet依赖
    • struts2-core依赖
      • 添加struts2-core的jar包,会把struts2-core需要用到的其他jar包一同引入进来

  • 写一个action,跳转到一个jsp页面,配置filter
  • 运行程序,会报错,这是因为jar包冲突了
    • 运行的tomcat有jsp,servlet的jar包
    • 引入的依赖中也有jsp,servlet的jar包
  • 解决:
    • 在添加依赖的时候有一个scope,修改scope的值(provided)
  • 依赖范围scope 默认 compile
    • compile(struts2-core) : 编译时需要,测试时需要,运行时需要,打包时需要
    • provided(jsp,servlet) : 编译时需要,测试时也需要,运行时不需要,打包时不需要
    • runtime(数据库驱动包) : 编译时不需要,测试时需要,运行时需要,打包时需要
    • test(junit) : 编译时不需要,测试时需要,运行时不需要,打包也不需要

添加插件
  • pom.xml中右键--->Maven add plugin--->输入tomcat
  • 添加完毕后配置文件有了tomcat的<plugin>标签,我们需要加上自己的配置
[XML] 纯文本查看 复制代码
<confoguration>
    <port>8888</port>
    <path>/first</path>
</configuration>


  • 启动的时候路径和端口都会改变
  • 如果我们需要用tomcat7来启动工程的话,把刚刚的插件注释掉,然后添加tomcat7的插件,运行时用tomcat7:run
常见问题
  • 在debug模式下没有进入到源码中,通过add project
  • 如果还是没有显示的话,右键项目,run as -->debug as-->debug configurations--->source--->把项目添加进来





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马