Maven学习与idea配置 初步

Maven学习与idea配置
                        冰冠 2018年06月18日09:31:04
一、Maven
1、什么是maven

    maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
    maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性
    利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
2、Maven常用命令

    Maven库:
        http://repo2.maven.org/maven2/
    Maven依赖查询:
        http://mvnrepository.com/

    1. 创建Maven的普通java项目:
       mvn archetype:create
       -DgroupId=packageName
       -DartifactId=projectName  
    2. 创建Maven的Web项目:   
        mvn archetype:create
        -DgroupId=packageName    
        -DartifactId=webappName
        -DarchetypeArtifactId=maven-archetype-webapp    
    3. 编译源代码: mvn compile
    4. 编译测试代码:mvn test-compile    
    5. 运行测试:mvn test   
    6. 产生site:mvn site   
    7. 打包:mvn package   
    8. 在本地Repository中安装jar:mvn install
    9. 清除产生的项目:mvn clean   
    10. 生成eclipse项目:mvn eclipse:eclipse  
    11. 生成idea项目:mvn idea:idea  
    12. 组合使用goal命令,如只打包不测试:mvn -Dtest package   
    13. 编译测试的内容:mvn test-compile  
    14. 只打jar包: mvn jar:jar  
    15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
          ( -skipping 的灵活运用,当然也可以用于其他组合命令)  
    16. 清除eclipse的一些系统设置:mvn eclipse:clean  

    ps.一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。

    mvn -version/-v  显示版本信息 ---安装完后检验是否安装成功
    mvn archetype:generate        创建mvn项目 --默认路径放在c盘,用户目录下
    mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app   创建mvn项目

    mvn package            生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
    mvn jetty:run            运行项目于jetty上,
    mvn compile                    编译
    mvn test                    编译并测试
    mvn clean                    清空生成的文件
    mvn site                    生成项目相关信息的网站
    mvn -Dwtpversion=1.0 eclipse:eclipse        生成Wtp插件的Web项目
    mvn -Dwtpversion=1.0 eclipse:clean        清除Eclipse项目的配置信息(Web项目)
    mvn eclipse:eclipse                将项目转化为Eclipse项目

    一般的顺序是1.mvn clean   2.maven  compile  3 .maven package.idea和eclipse也集成这些功能,可以直接在开发工具上操作。
3、Maven概念模型

    Maven学习与idea配置 初步_第1张图片
4、Maven的声明周期,项目构建过程

    Maven生命周期就是为了对所有的构建过程进行抽象和统一
    包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤
    Maven有“三套”相互独立的生命周期,而且相互独立,这三套生命周期分别是:

    Maven三大生命周期
        clean:清理项目的
            在进行真正的构建之前进行一些清理工作。
        default:构建项目的
            构建的核心部分,编译,测试,打包,部署等等。
        site:生成项目站点的
            生成项目报告,站点,发布站点

    要特别注意的是:它们是相互独立的,可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然也可以直接运行mvn clean install site 运行着三套生命周期。    
二、Idea下Maven的配置
1、选择 Maven + IntelliJ IDEA 的理由

    之所以要选择IntelliJ IDEA,是因为Maven+Eclipse实在太难用了。Eclipse有两个Maven插件 m2eclipse 和 Eclipse IAM。但是由于Eclipse和Maven设计上的矛盾,这两个插件可能都达不到你想要的效果。m2eclipse 会把你所有类型的项目都视为Maven类型项目,这对于一个单纯的Java项目或许可以,对于一个JEE或者WEB项目都是一场灾难。Eclipse IAM 并不会改变你的项目类型,但是他提供的功能也就仅仅限于编辑和运行POM文件了,甚至连依赖性都管理不了。相比之下,如果你非要用Eclipse的话我还 是推荐你使用Eclipse IAM。Eclipse想要完美的支持Maven恐怕需要在底层设计上做一些改变,无论是代码规范,项目结构规范和依赖性管理上,都有着不可调和的矛盾。 显然,在这方面IntelliJ IDEA做的要好的多,以至于你很难说出对它的不满。
2、Maven + IntelliJ IDEA 的优势

    一切都是Module:
          IntelliJ IDEA借鉴的Maven的概念,不在采取Eclipse里Project的概念,一切都是Module。无论是否使用Maven,你的项目都是一个独立 的Module。并且你可以混搭使用Maven Module和普通的Java Module,两者可以和谐共存。

    支持Multi-module:

          可以说Maven的项目结构设计是非常严格的,现实应用中你必须用到Parent-Child的模式。Eclipse由于不支持在一个Project上建 立Sub-Project,因此无论如何目前都不能实现。IntelliJ IDEA可以完美的实现这个设计,并且无论是Module属性里,还是彼此的依赖性上都不会出现问题。

    更方便的生命周期操作:

          比起Eclipse通通放进右键菜单的行为,IntelliJ IDEA有着单独的窗口可以完成Maven的操作。你可以针对不同Module进行 Clean Compile Package Install等操作,各个Plug-in的操作也一清二楚。

    完美的依赖性管理:

          由于Maven会把所有依赖的包放在本机的一个目录下,所以实际上是脱离Project本身存在的。IntelliJ IDEA引入了一个External Library的概念,所有的Maven依赖性都会放在这里,和项目自带的库区分开。并且Module之间会智能的判断,你不需要Maven Install来进行引用代码的更新。

    动态更新:

          每当Maven相关的设置更改时,例如修改了pom的依赖性,添加删除Module,IntelliJ IDEA会提示你进行更新。这种更新实际上就是运行了Maven,所以你不许要手动运行Maven Compile来进行更新,也不会像Eclipse里遇到莫名其妙的问题。
 3、Idea集成Maven

     单击 File –> settings 菜单选项,在跳出的设置窗口中输入maven,定位到maven配置项菜单。
在maven配置面板中,需要修改两个属性:

        Maven home directory: (Maven目录)将idea默认的maven修改为自己下载的
        User settings file: (Settinglujing)修改为自己配置好的settings.xml文件。
        Local    repository:(本地仓库路径)
 4、Idea创建Maven项目

     file->new -> projects->Maven->不选择任何Maven模板->起个GroupId、ArifactId->起个项目名。注意:Idea_Project是存放此项目的工作区间,mavenDemo_idea15为存放此项目的子目录。->建好项目后,打开,点击Auto-Import
5、Idea项目部署(ctrl+alt+shift+s)

    Project: 无需设置 (当然可点击Project complier output自定义编译目录)
    Modules:可看到此项目无任何适配服务组件(因为是手工创建Maven,没有选择任何Maven模板)--因此需要我们进行添加。
        选择Web(为此项目添加Web服务组件,这便是一个Web项目了)
        现在为Web设置资源目录。双击Web Resource Directory
        选择scr/main目录
        现在设置Web的描述文件的目录
    Facts: 表示当前项目的适配服务组件。可看到此项目已是一个Web项目了。
    Aftifacts: 这个Aftifacts描述了当前项目发布的信息。现在进行添加,从Modeles中选择。
        说明:A: 现在Artifacts已有了发布的项目了(idea中准确的说应是Modele) B:output root目录描述了当前项目的编译目录及适配服务。

你可能感兴趣的:(JAVA,WEB,JAVA学习笔记)