Maven入门

    1.    Maven下载与安装
Maven是什么
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
合理叙述项目间的依赖关系

Maven下载安装
    http://maven.apache.org/download.cgi
    安装
        直接解压就可以
    目录结构
        bin
            包含了Maven的运行脚本文件
        boot
            Maven的依赖的类加载器
        conf
            Maven的全局配置文件(settings.xml),定制Maven的运行行为
            把C:\Users\64434\.m2\repository作为本地仓库的路径,可以通过核心配置文件来改
        lib
            依赖jar包
    maven环境变量配置
        配置的目的
            想要在任何地方都能够运行mvn命令
        配置两个一个Home 一个home/bin
        Home在新建,home/bin在path
        打开命令行输入mvn -v 查看结果

    2.    Maven第一个工程
Maven规定了一套默认的项目格式
src/main/java        存放项目的.java文件
src/main/resources    存放项目资源文件,如spring、struts2配置文件,db.properties
src/main/webapp       存放jsp,css,image等文件
src/test/java        存放所有测试.java文件,如JUnit测试类
src/test/resources    测试资源文件
pom.xml            主要要写的maven配置文件
target            项目由maven自动输出位置

创建第一个Maven项目
    确保idea安装了Maven插件
    创建Maven工程    
new一个maven工程    下一步    添加 Jar包的坐标的组织,项目,版本.
记得勾选Auto-import自动加载勾选上
在pom.xml里添加    
    <dependencies>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
自动下载junit的相关maven包.

添加Maven依赖jar包    会自动把jar依赖到项目当中

需要再添加插件就再输入dependency.

    3.    配置本地仓库地址
Maven仓库
    Maven所有的Jar包都是放到maven仓库当中
    在项目当中是对仓库jar包的引用
Maven仓库分为三种
    本地仓库
        本地存放jar的目录
    私服
        私人搭建的服务器,一般在企业内部局域网使用
    中央仓库
        Maven内置了一个远程仓库的地址,它就是中央仓库

Maven找jar包的过程
    Maven查找引入jar包时, 会先到本地仓库当中查找,没有找到现到私服中找,也没有就去到远程中央仓库查找.
    找到后会下载到本地仓库,下次就不用到远程仓库了
    最终都会把jar包下载到本地仓库
    Maven工程最终引用的都是本地的jar包

设置本地仓库目录地址
    默认本地仓库    C:\Users\renhao.chen\.m2\repository
    修改本地仓库
        把maven安装目录config中setting.xml复制一份到.m2文件夹下
            
        打开setting.xml修改本地仓库地址
D:\MavenRepository

    4.    阿里云镜像配置
阿里云镜像
    <mirror>
          <id>alimaven</id>
          <mirrorOf>central</mirrorOf>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
在setting.xml中配置

    5.    Maven常用命令和生命周期
Maven常用命令
validate    确保当前配置和 POM 的内容是有效的
clean        删除target目录下及其目录下的所有内容
compile         将java文件编译成二进制放到target目录当中
test        运行测试用例
package        打包工程
install        把maven打成的包发布到本地仓库当中

后一个执行时, 前面命令都会执行命令
    

    6.    Maven依赖Scope作用范围

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>

scope
compile
默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去

test
依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit
    
runtime
表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段
    
provided
打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
    
system
从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径


    7.    Maven-创建Web工程
file new project maven,下面的maven-webapp

注意事项
    generating project in batch mode 很慢,是应为maven获取archetype-catalog.xml导致
用浏览器打开http://repo1.maven.org/maven2/archetype-catalog.xml很慢
    解决方法: 在用maven创建项目时在properties中添加 archetypeCatalog=internal,让maven读取本地配置即可

 

配置tomcat本地服务.设置项目部署为war包.

修改web.xml
把版本改为3.0
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0" metadata-complete="false">
<absolute-ordering/>
  <display-name>web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
  </welcome-file-list>
</web-app>

修改pom.xml
使用4.0.1的servlet使用@WebServlet注解.


    8.    Maven-使用Tomcat插件
pom.xml
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8081</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
  </build>

这个plugins要写在系统的plugins外面.
在maven插件就有tomcat7.
对着右侧的tomcat7展开选tomcat7:run 使用Create.
不支持jrebel热部署.

如果使用插件需要自己重新部署.


    9.    Maven-代码生成器
第一步,添加代码生成器的依赖.
pom.xml下面添加
添加在build下面和系统的plugins分开写
    <plugins>
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <verbose>true</verbose>
          <overwrite>false</overwrite>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>

多了一个mybatis-generator,点击就能逆向生成

第二步,添加代码生成器配置文件generatorConfig.xml

第三步,指定表teacher

第4步,点击mybatis-generator:generate生成domain类teacher
mapperTeacherMapper,TeacherMapper.xml

    10.    Maven-SSM整合添加依赖
在pom.xml中定义spring和mybatis的版本号.
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <!--定义版本号   ${org.springframework.version}-->
        <org.springframework.version>5.0.7.RELEASE</org.springframework.version>
        <org.mybatis.version>3.4.6</org.mybatis.version>

    </properties>
在pom.xml下面的配置时使用${org.springframework.version}采用统一的版本号,从上面定义中获取.
   <dependencies>

        <!--spring-test-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework.version}</version>
            <scope>test</scope>
        </dependency>
        <!--spring-core-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
   </dependencies>
        

    11.    Maven-SSM整合配置文件添加
application-mvc.xml        mvc配置
application-mybatis.xml        mybatis配置
applicationContext.xml        spring配置
db.properties数据库信息
log4j.properties
sqlMapConfig.xml

    12.    Maven-SSM整合三层架构.
mapper.xml的文件必须放在resources下面,在下面创建一个com.itlike.mapper.不然扫描不到.
TeacherController
@Controller
public class TeacherController {
    //注入服务层
    @Autowired
    private TeacherService teacherService;
    @RequestMapping("/teacher")
    public String teacher(String name){
        System.out.println(name);
        //调用服务层
        teacherService.save(name);
        return "success";
    }
}

TeacherServiceImpl
@Service
@Transactional
public class TeacherServiceImpl implements TeacherService {
    //注入mapper
    @Autowired
    private TeacherMapper teacherMapper;
    @Override
    public void save(String name) {
        System.out.println("来到了服务层");
        //调用mapper
        Teacher teacher = new Teacher();
        teacher.setTeacherName(name);
        teacherMapper.insert(teacher);
    }
}

 

posted @ 2019-06-05 14:34  ricky0001  阅读(164)  评论(0编辑  收藏  举报