Maven入门

来源:互联网 发布:快牙软件下载 编辑:程序博客网 时间:2024/06/07 11:23

Maven入门

  1. Maven是什么?

    一个项目构建工具.为开发者提供了一套完整的构建项目生命周期的框架.

  2. 约定优于配置

    在没有自定义的情况下,源代码,资源文件,测试代码都有固定的位置.

  3. 创建一个简单的项目

    在命令行输入

    mvn archetype:generate -DgroupId=com.lkc.helloworld -DartifactId=helloworld -Dpackage=com.lkc.helloworld -Dversion=1.0-SNAPSHOT

    回车之后就建好了一个maven项目,archetype是maven的一个插件,generate就是一个目标,maven真正做的事通过执行插件的目标来完成,自己只做一些依赖的东西;
    接下来的所有-DName=value就是将参数传到目标中;
    groupId就是所在的组的标识符;
    artifactId就是项目标识符;
    package是包名;
    version就是版本号.
    之后查看下目录结构:

    .└── helloworld       ├── pom.xml       └── src            ├── main             │   └── java        │       └── com        │           └── lkc        │               └── helloworld        │                   └── App.java        └── test            └── java                └── com                    └── lkc                        └── helloworld                            └── AppTest.java

    archetype新建了一个与artifactId相同的helloworld目录,是项目的基础目录.
    pom.xml描述了项目,配置了插件,声明了依赖.
    src/main是项目的源码目录.
    src/test是项目的测试目录.

  4. 构建一个项目

    上一节新建了一个项目,那我们肯定不想让它建好了就放在那不用,肯定希望构建并打包这个项目,可以通过

    mvn install

    来构建,但要在pom.xml这个文件所在的位置下执行.
    执行完毕后在命令行输入

    java -cp target/simple-1.0-SNAPSHOT.jar com.lkc.helloworld.App

    运行你的项目,会打印出

    Hello World!

    运行成功

  5. 项目的对象模型

    当Maven运行时它向项目对象模型查看关于项目的相关信息,pom.xml回答了这个项目是什么类型的,这个项目的名称是什么类似的问题;下面来看一下刚刚的pom文件:

        <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>  <groupId>com.lkc.helloworld</groupId>  <artifactId>helloworld</artifactId>  <version>1.0-SNAPSHOT</version>  <packaging>jar</packaging>  <name>helloworld</name>  <url>http://maven.apache.org</url>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>  </dependencies></project>

    groupId,artifactId,packaging,version是Maven的坐标,唯一地标识了这个项目;
    name和url描述了项目的名字和站点;
    dependencies定义了一个单独的测试范围依赖;
    Maven通过pom.xml让项目跑起来.

  6. 常用的Maven命令

    命令 用途 mvn compile 编译源代码 mvn test-compile 编译测试代码 mvn test 运行测试 mvn package 打包项目 mvn archetype:generate 创建Maven项目 mvn clean 清理项目(删除target文件夹)