javaweb学习笔记17

180 阅读3分钟

Maven入门学习

1.概念:
    Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),
    一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。


2.仓库的种类和彼此关系:
    *仓库分三类:本地仓库,远程仓库[私服],中央仓库

3.maven项目标准目录结构:
    src/main/java目录       核心代码部分  
    src/main/resources      配置文件部分
    src/test/java目录       测试代码部分
    src/test/resources      测试配置文件
    src/main/webapp         页面资源 js,css,图片等待..
    
4.maven常用命令
    clean:清除项目编译信息,避免在导入别人的项目时开发环境不同运行不了
    compile:编译src/main目录下的java代码
    test:编译src/main和src/test目录下的java代码
    package:打包,编译了src/main和src/test目录下的java代码,并且将项目打成指定格式的包
    install:安装,完成打包的工作后将包安装到本地仓库
    deploy:发布
    
5.maven生命周期
    1.清理生命周期:项目构建之前的准备工作
    2.默认生命周期:每一个命令都是对项目进行构建,当执行后面命令的时候前面的命令会自动执行一次
    3.站点生命周期:

6.maven概念模型图:
    *maven的两大核心功能:
        1.依赖管理
        2.一键构建

IDEA集成maven插件

1.配置步骤:
    1.先安装本地maven
        1.解压maven安装包到没有中文没有空格的目录下
        2.配置环境变量
        3.将本地仓库需要的jar包放在没有中文没有空格的目录下
    2.IDEA相关配置
        1.设置maven的主目录(安装目录)
        2.设置settings.xml文件目录,会自动生成本地仓库的地址
        3.设置运行时VM选项为-DarchetypeCatalog=internal,指定创建项目是获取内置文件而不需要下载,加快项目创建的速度
        
2.创建一个maven项目
    1.根据骨架创建
    2.不根据创建
3.maven创建一个web项目
    1.根据骨架org.jetbrains.idea.maven.model.MavenArchetype@8994c18c创建一个webapp项目
    2.pom.xml中导入项目所需要的jar包
        <dependencies>
            <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
              <scope>test</scope>
            </dependency>
        </dependencies>
    
            *<scope>标签指定jar包的作用域
                *compile:默认范围,在编译,测试,运行时都有效
                *test:指在测试中有效 例如:Junit
                *provided:指只在编译时有效 例如:servlet-api
                *runtime:在测试和运行时有效 例如:JDBC驱动
                *system:在编译,测试时有效
*注意:
    maven运行web项目是默认tomcat版本为6,如果需要修改版本可以在pom.xml中添加:
        <plugins>
            <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>2.2</version>
              <configuration>
                <port>80</port>
              </configuration>
            </plugin>
        </plugins>