Maven

零、目录

  • Maven简介
  • Maven 的安装与配置
  • 创建Maven工程
  • 创建maven-web工程
  • 搭建私服
  • 使用本地资源库
  • 阿里私服
  • maven命令
  • 上传本地工程到私服中
  • maven-web工程部署到tomcat中

一、 maven简介

  1. 传统项目存在的弊端
    1. 多人合作时 , jar包版本冲突问题不易被发现 , 且解决繁琐
    2. 传统项目打包方式不通用 , 不能够很好的支持聚合项目的打包
    3. 传统的项目文件(配置文件 、 核心代码 、 测试代码)都放在src下 , 容易混乱
  2. maven优点:
    1. 可以通过几行简单的代码引入三方jar包 , 并且会自动引入此jar包所依赖的所有jar包
    2. 支持聚合项目打包 , 而且操作操作便捷
    3. 分目录存放各类型的文件 , 一目了然

二、 安装并配置maven

  1. 下载maven
    1. 百度maven第一个就是官网
    2. 下载时注意win版后缀为.zip , linux版后缀为.tar.gz
    3. 注意与机器位数匹配
  2. 将maven引入eclipse中
    1. 添加之后记得打钩
    2. 配置用户setting文件
      1. 选择的是刚刚maven的安装目录下的config目录下的setting.xml文件
  3. 配置本地仓库: 打开setting.xml文件
  4. maven的工作流程 , 本地仓库的作用:
    1. 当程序中的pom.xml文件中配置了三方jar包时 , maven便会开始自动导入jar包
    2. 在自动导入的过程中 , 先去本地仓库中查找有没有 , 如果本地仓库中没有就会自动联网去远程仓库中下载 , 下载完成后会自动保存到本地仓库中, 以便后续的使用, (远程仓库包括:私服 、 中央仓库 、 还有一些第三方镜像)

三、 创建maven工程

  1. 新建
  2. 选择骨架 , 这里的骨架实就是一个工程模板
  3. 定义坐标
    1. 坐标的作用让别的工程能够顺利的找到当前工程的信息
    2. SNAPSHOT与RELEASE的区别:
      1. SNAPSHOT版本指的是不稳定版本 , 尚在开发阶段
      2. RELEASE版本值得是稳定版本 , 基本开发完成, 即将发布的版本
  4. 第一次创建maven工程时, 如果本地仓库是空的 , 则需要下载一段时间 , 因为骨架也是需要依赖许多jar包的 。
  5. 创建完maven工程首先要该默认的jdk
    1. java工程改两处
      1. 修改默认的jdk
      2. 修改默认的编译器
    2. java-web工程改三处(后续有)
  6. maven工程的目录
  7. 在pom.xml文件中配置依赖的jar包坐标 , 会自动下载对应的jar
  8. 需要用到的jar包可以去官网上搜索对应的坐标
  9. 把坐标添加进pom.xml文件的依赖中
  10. 通过坐标会下载对应的jar包以及该jar包依赖的所有jar包

四、创建maven-web工程

  1. 解决jsp文件的报错:
    1. 解决方案: 关闭eclipse对jsp文件的校验工程 , 关闭所有是为了编译的速度更快
  2. 修改web工程的jdk、 编译器 、 工作视图 , 3个地方:
    1. 修改视图: window-> showView->other
  3. web工程的目录结构

五、maven私服

  1. maven私服介绍
    1. 工作原理:
      1. 在多人项目开发的时候 , 尤其是聚合项目开发时 , 项目和项目之间会存在依赖关系 , 需要通过maven把彼此需要依赖的jar包保存起来 , 才能够供整个项目组的每一个成员访问
    2. 通过install命令可以把项目编译、打包后发布发布到本地仓库中 , 发布到本地仓库的资源可以供本地的任何工程使用
    3. 还可以把本地仓库的资源发布到私服中,可以供任何能够访问到私服的设备使用 。
  2. 搭建私服:
    1. 下载nexus并解压在于maven一致的安装目录
    2. 以管理员身份运行安装文件 , 安装完之后窗口自动关闭
    3. 在以管理员身份执行开启文件 , 开启玩自动关闭
    4. 检测服务是否开启
      1. 我的电脑->管理
      2. 在浏览器地址栏中输入localhost:8081/nenux访问私服页面 , 并登陆默认的账号是admin , 密码是admin123
  3. maven配置私服
    1. 在setting.xml文件中添加私服的配置
  4. 测试是否配置成功

    1. 在pom.xml文件中选中<dependencies>标签和其中的所有内容用以下配置替换
    
    <!-- 集中定义依赖版本号 -->
    <properties>
        <junit.version>4.12</junit.version>
        <spring.version>4.2.3.RELEASE</spring.version>
    
        <mybatis.version>3.2.8</mybatis.version>
        <mybatis.spring.version>1.2.2</mybatis.spring.version>
        <mybatis.paginator.version>1.2.15</mybatis.paginator.version>
        <mysql.version>5.1.32</mysql.version>
        <bonecp-spring.version>0.8.0.RELEASE</bonecp-spring.version>
        <druid.version>1.0.9</druid.version>
    
        <mapper.version>2.3.2</mapper.version>
        <pagehelper.version>3.4.2</pagehelper.version>
        <jsqlparser.version>0.9.1</jsqlparser.version>
    
        <slf4j.version>1.6.4</slf4j.version>
        <jstl.version>1.2</jstl.version>
        <servlet-api.version>2.5</servlet-api.version>
        <jsp-api.version>2.0</jsp-api.version>
    </properties>
    
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>   
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
    
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis.spring.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.miemiedev</groupId>
            <artifactId>mybatis-paginator</artifactId>
            <version>${mybatis.paginator.version}</version>
        </dependency>   
    
        <!-- 通用Mapper,所有的单表的代码都不用编写 -->
        <dependency>
            <groupId>com.github.abel533</groupId>
            <artifactId>mapper</artifactId>
            <version>${mapper.version}</version>
        </dependency>
    
        <!-- Oracle版权问题,maven目录必须自己手动建立 -->
        <dependency> 
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.1.0.7.0</version>
        </dependency>
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!-- 超高性能连接池 -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP-java6</artifactId>
            <version>2.3.9</version>
            <scope>compile</scope>
        </dependency>   
    
        <!-- Apache Shiro 权限架构 -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-all</artifactId>
            <version>1.2.3</version>
        </dependency>   
    
        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>${pagehelper.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>${jsqlparser.version}</version>
        </dependency>
    
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
    
        <!-- JSP相关 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${servlet-api.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>${jsp-api.version}</version>
            <scope>provided</scope>
        </dependency>
    
        <!-- 字符加密、解密 -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.9</version>
        </dependency>
    
        <!-- 数据校验 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.3.Final</version>
        </dependency>                       
    </dependencies>
    3. 如果没有报错  ,且去查看本工程外部jar包是否被引入 , 则说明本地资源仓库配置ok
    

六、 阿里私服

  1. Maven中常见的错误:

    1. 如果创建quickstart和webapp时会弹出两个对话框报错 , 且报错信息提示骨架有问题 , 则去删除本地资源库中\org\apche\maven\archetypes的所有骨架
    2. 解决方案:

      1. 在setting文件中配置阿里的私服

         <mirror>
                <id>nexus-aliyun</id>
                <mirrorOf>*</mirrorOf>
                <name>Nexus aliyun</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public</url>
         </mirror> 
        
  2. 阿里私服的优点:
    1. 服务器在国内 , 比直接从maven中央仓库中下载速度要快很多

七、 maven命令

  1. 在使用maven命令之前要先配置maven环境变量
  2. 测试配置环境变量是否成功
  3. maven命令
    1. 需要cmd先进入到pom.xml文件所在目录
    2. mvn clean 把之前编译的class文件和jar\war文件删除
    3. mvn compile 把java文件编译为class文件
    4. mvn package 打包
    5. mvn install 在执行这个命令时会自动执行前面的三步
      1. 执行步骤: 先把之前编译完成和打包的文件删除 , 然后编译生成clas文件 , 然后把class文件打包 , 最后把打包好的文件上传至本地资源仓库 。

八、上传本地jar到私服中

  1. 选择artifact upload 下面的selectartifact upload选择要上传的jar
  2. 上传完成后查看上传的jar文件

九、 把maven-web工程部署到tomcat中:

  1. 在pom.xml文件中添加tomcat插件配置

    <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <port>8090</port>
                        <path>/</path><!—代表直接缺省工程名 -->
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
  2. 配置run config
  3. 导入源码(其实不导也可以只是不导的情况下不能使用断点调试)
  4. 开启tomcat
    1. 如果出现以下提示将代表项目部署完成 , 会出现一些红字 ,那不是报错 , 是一些日志

十、 jsp中el表达式失效问题

  1. 如果在jsp页面中出现el表达式失效问题 , 则需要在jsp的page标签中添加一个属性

    isElIgnore=“false”
    
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐