• Maven


    Maven学习总结

    一、Maven的基本概念与安装  

      http://www.cnblogs.com/xdp-gacl/p/3498271.html

      Maven(翻译为"专家","内行")是跨平台的项目管理工具

      主要服务于基于Java平台的项目构建,依赖管理和项目信息管理

      项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程

      Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系

      Maven约定了标准的目录结构
      

      

      
      

    二、Maven构建过程

      http://www.cnblogs.com/xdp-gacl/p/4051690.html

    • 编译:项目根目录执行"mvn compile"命令编译项目的java类,编译成功会出现一个target文件夹,里面有.class文件
    • 清理项目的命令是:"mvn clean",会删除编译时生成的target文件夹

    • 项目根目录执行"mvn test"命令测试项目
    • 打包项目的命令是:"mvn package"  打包成功后生成的jar文件在target文件夹中
    • 项目根目录执行"mvn install"部署项目命令,会把最后生成的jar包发布到Maven存放jar包的仓库中,别的项目如果依赖到这个jar包也可以通过在pom.xml中配置使用了

      使用"mvn install"命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能够做的事情最多

      maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的

    • 先清理再编译:"mvn clean compile"
    • mvn clean test
    • mvn clean package
    • mvn clean install


    三、使用Maven命令创建项目

      http://www.cnblogs.com/xdp-gacl/p/4240930.html

    • 创建Java项目
      mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

      会在当前目录下创建项目,在D盘根目录执行以上命令就会生成一个名为myapp的Java项目


      mvn clean install部署后会在target以及本地仓库中生成一个jar包




      运行jar包:java -cp targetmyapp-1.0-SNAPSHOT.jar com.mycompany.app.App






    • 创建JavaWeb项目

      mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

      D盘执行以上命令会生成一个名为my-WebApp的Javaweb项目,mvn package打包项目,会在target下生成my-WebApp.war文件,把war文件放到tomcat中就可以运行了,除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,然后启动Jetty:mvn jetty:run

       1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
       3   <modelVersion>4.0.0</modelVersion>
       4   <groupId>com.mycompany.app</groupId>
       5   <artifactId>my-WebApp</artifactId>
       6   <packaging>war</packaging>
       7   <version>1.0-SNAPSHOT</version>
       8   <name>my-WebApp Maven Webapp</name>
       9   <url>http://maven.apache.org</url>
      10   <dependencies>
      11     <dependency>
      12       <groupId>junit</groupId>
      13       <artifactId>junit</artifactId>
      14       <version>3.8.1</version>
      15       <scope>test</scope>
      16     </dependency>
      17   </dependencies>
      18   <build>
      19     <finalName>my-WebApp</finalName>
      20     <pluginManagement>
      21          <!--配置Jetty-->
      22            <plugins>
      23              <plugin>
      24               <groupId>org.mortbay.jetty</groupId>   
      25               <artifactId>maven-jetty-plugin</artifactId>
      26              </plugin>
      27            </plugins>
      28      </pluginManagement>
      29   </build>
      30 </project>
      pom.xml
      
      
    • 创建命令说明

      mvn archetype:create或者mvn archetype:generate  固定写法

      -DgroupId         组织标识(包名)

      -DartifactId        项目名称

      -DarchetypeArtifactId     指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project

      -DinteractiveMode     是否使用交互模式

        archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

      • maven-archetype-archetype
      • maven-archetype-j2ee-simple
      • maven-archetype-mojo
      • maven-archetype-portlet
      • maven-archetype-profiles (currently under development)
      • maven-archetype-quickstart
      • maven-archetype-simple (currently under development)
      • maven-archetype-site
      • maven-archetype-site-simple
      • maven-archetype-webapp

        每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstartmaven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project

    • pom.xml文件的节点元素说明

        <project>       pom文件的顶级节点
        <modelVersion>     object model版本,对Maven2和Maven3来说,只能是4.0.0 
        <groupId>       项目创建组织的标识符,一般是域名的倒写
        <artifactId>      定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
        <version>        当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

        <packaging>      打包的方式,有jar、war、ear等
        <name>        项目的名称
        <url>          项目的地址

        <properties>    属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <dependencies>     构建项目依赖的jar

        其中由groupIdartifactIdversion唯一的确定了一个项目坐标

  • 相关阅读:
    codevs 1450 xth 的旅行
    Loj #6287 诗歌
    Codeforces 323C Two permutations
    Spoj MKTHNUM
    [TJOI2015]弦论
    Spoj SUBLEX
    bzoj 4338: BJOI2015 糖果
    bzoj 3462: DZY Loves Math II
    bzoj 2843: 极地旅行社
    清北学堂模拟赛d4t5 b
  • 原文地址:https://www.cnblogs.com/gucl/p/8135586.html
Copyright © 2020-2023  润新知