zoukankan      html  css  js  c++  java
  • 项目管理工具:Maven使用方法总结

    一、概念

      Maven是一个项目管理和构建自动化工具。Maven提供了开发人员构建一个完整的生命周期框架,开发团队可以自动完成项目的基础工具建设。一个Maven项目的结果如下图所示:

      

    二、Maven安装

      在安装maven之前,先保证安装了JDK,然后在Apache的官网上http://maven.apache.org/download.cgi下载最新版本的Binary zip archive包。

      下载完解压放在本地的某个路径下,然后配置maven环境变量:

      新建变量名M2_HOME

      变量值:C:Program Filesapache-maven-3.3.9

      在PATH里加入maven的bin的路径:

      

      配置完成后,在windows命令提示符下,输入mvn -version,如果显示下图则表示安装成功:

      

      在Eclipse 4.0以上版本,继承了Maven的插件,可以在Window -> Preference -> Maven进行一些配置:

      

      

    三、常用命令

    mvn archetype:create 创建Maven项目
    mvn compile 编译源代码
    mvn deploy 发布项目
    mvn test-compile 编译测试源代码
    mvn test 运行应用程序中的单元测试
    mvn site 生成项目相关信息的网站
    mvn clean 清除项目目录中的生成结果
    mvn package 根据项目生成的jar
    mvn install 在本地Repository中安装jar
    mvn eclipse:eclipse 生成eclipse项目文件
    mvn jetty:run 启动jetty服务
    mvn tomcat:run 启动tomcat服务
    mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

    四、生命周期

      Maven的生命周期是为了对所有的构建过程进行了抽象,便于统一。

      1、clean 清理项目

      pre-clean 执行清理前的工作

      clean 清理上一次构建生成的所有文件

      post-clean 执行清理后的文件

      2、Default 构建项目

      compile 编译项目中的源代码

      test 使用合适的单元测试框架进行测试,这些测试代码不会被打包或部署

      test-compile 将需要测试的源代码编译到路径,一般是编译src/test/java目录下的java文件至目标输出的测试classpath目录中

      package 接受编译好的代码,打包成可发布的格式,如JAR

      install 将包安装到本地仓库,给其他本地引用提供依赖

      3、site 生成项目站点

      pre-site 在生成项目站点前要完成的工作

      site 生成项目的站点文档

      post-site 在生成项目站点后要完成的工作

      site-deploy 发布生成的站点到服务器上

    五、第一个Maven项目

      在Eclipse中新建一个Maven项目:

      

      

      Finish后项目的结果是:

      

      Eclipse构建web项目时,与上面大体相同,需要注意是选择ArcheType的时候选择maven-archetype-webapp。

      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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.xj.webdemo</groupId>
      <artifactId>webdemo</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>webdemo Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.10</version>
          <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
      </dependencies>
      <build>
        <finalName>webdemo</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <executions>
                    <execution>
                        <phase>
                            package
                        </phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
      </build>
    </project>
    View Code

      然后运行,就可以在浏览器输入localhost:8080,就可以访问了。

    六、POM文件

      一个项目所有的配置都放置在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.xj.maven</groupId>
      <artifactId>hello</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
      <name>hello</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>4.10</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

      在pom文件中

     <groupId></groupId>
      <artifactId></artifactId>
      <version></version>

      叫做坐标,它能唯一的确定一个项目,有了maven坐标,我们就可以用它来指定我们的项目所依赖的其他项目,插件,或者父项目。

    七、Maven库

      当第一次运行maven命令时,你需要Internet连接,因为它要从网上下载一些文件,maven默认的远程库是http://repo1.maven.org/maven2,这个远程库有maven的核心插件和可供下载的jar文件。

      但不是所有的jar文件都可以从远程库下载,比如我们自己开发的项目,这个时候可以在内部定制库,也可以手动下载和安装所需的jar文件到本地库。

      本地库是指 maven 下载了插件或者 jar 文件后存放在本地机器上的拷贝。在 Linux 上,它的位置在 ~/.m2/repository,在 Windows XP 上,在 C:Documents and Settingsusername.m2 epository ,在 Windows 7 上,在 C:Usersusername.m2 epository。当 maven 查找需要的 jar 文件时,它会先在本地库中寻找,只有在找不到的情况下,才会去远程库中找。

      运行下面的命令能把我们的 helloworld 项目安装到本地库:

         $mvn install

    八、参考资料

      1、http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html

      2、http://mvnrepository.com/

  • 相关阅读:
    Leetcode python 141. 环形链表
    leetcode python 387. 字符串中的第一个唯一字符 383. 赎金信 242. 有效的字母异位词
    leetcode python 566. 重塑矩阵 118. 杨辉三角
    leetcode python 350. 两个数组的交集 121. 买卖股票的最佳时机
    小程序常见的应用场景
    小程序基础入门
    高二数学必修4
    高二数学必修3(概率)
    高中3年数学知识梳理 & 成考 专升本 高数对比;
    高一数学必修1
  • 原文地址:https://www.cnblogs.com/xujian2014/p/5565086.html
Copyright © 2011-2022 走看看