zoukankan      html  css  js  c++  java
  • Maven教程(一)

    现在的java项目一般都是通过Maven管理jar包与版本,本身属于依赖倒置,通过maven更方便的管理jar包。

    当然,在安装maven之前需要安装配置好JDK,这部分省略。

    配置maven的运行环境。

    第一步

    首先在http://maven.apache.org/download.cgi 上找到maven安装包。解压到硬盘你乐意的位置。

    然后记录maven的路径 ,例如我的是:D:mavenFileapache-maven-3.5.3

    第二步

    我们开始配置环境变量。总共有三个环境变量需要配置。分别是M2(运行的bin目录)、M2_HOME(运行的文件夹位置)、MAVEN_OPTS(运行的配置信息)。例如我的配置就是。

    M2_HOME:D:mavenFileapache-maven-3.5.3

    M2:D:mavenFileapache-maven-3.5.3in

    MAVEN_OPTS: -Xms256m -Xmx512m

    第三步

    在你的Path环境变量下添加bin目录的路径,win7下也可以使用;%M2%代替

    第四步

    在CMD界面,运行 mvn --version。可查看当前maven的版本,安装成功后可知。

    创建maven项目

    在eclipse创建mave项目非常简单。

    在项目管理的框内,右键创建 other.

    搜索maven 创建maven Project。

    你可以直接下一步来填写所需信息创建mavan。(我建议你先读完下面的pom讲解再创建maven)

    也可以在途中选中create a simple project.来创建含有父类pom的maven.

    POM讲解

    POM 代表工程对象模型。它是使用 Maven 工作时的基本组建,是一个 xml 文件。它被放在工程根目录下,文件命名为 pom.xml。

    POM 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程。

    POM 也包含了目标和插件。

    在创建 POM 之前,我们首先确定工程组(groupId),及其名称(artifactId)和版本,在仓库中这些属性是工程的唯一标识。

    <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.dhh</groupId>
      <artifactId>p1802</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>blog</name>
      <description>mySelf blog</description>
    </project>
    modelVersion:当前POM.xml的版本格式,这个是用来后台识别
    groupId:公司组织表示,建议使用公司域名。也是jar包被mave打包后的存放路径
    artifactId:项目名,你的当前项目名。
    version:版本号。

    所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 也被称作 Super POM,它包含了一些可以被继承的默认设置。
    继承可以让我们避免一些不必要的通用性配置。可用CMD在项目文件夹下,运行:mvn help:effective-pom。查看父类pom的配置。


    Maven生命周期

    maven的生命周期一般如下:
    1资源拷贝(本阶段可以自定义需要拷贝的资源)
    2编译(本阶段完成源码编译)
    3打包配置(根据pom创建管理jar包)
    4安装(使用调用安装工程包)

     当 Maven 开始构建工程,会按照所定义的阶段序列的顺序执行每个阶段注册的目标。Maven 有以下三个标准的生命周期:

      clean

      default(or build)

      site

      其中clean包含pre-clean、clean 和 post-clean 阶段。

      我们执行clean操作可以直接使用工具也可以CMD在pom所在目录下执行mvn post-clean

      

      default(or build)的生命周期阶段过多。如下表,不用细看,出错再看

    生命周期阶段描述
    validate 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到。
    initialize 初始化构建状态,例如设置属性。
    generate-sources 生成编译阶段需要包含的任何源码文件。
    process-sources 处理源代码,例如,过滤任何值(filter any value)。
    generate-resources 生成工程包中需要包含的资源文件。
    process-resources 拷贝和处理资源文件到目的目录中,为打包阶段做准备。
    compile 编译工程源码。
    process-classes 处理编译生成的文件,例如 Java Class 字节码的加强和优化。
    generate-test-sources 生成编译阶段需要包含的任何测试源代码。
    process-test-sources 处理测试源代码,例如,过滤任何值(filter any values)。
    test-compile 编译测试源代码到测试目的目录。
    process-test-classes 处理测试代码文件编译后生成的文件。
    test 使用适当的单元测试框架(例如JUnit)运行测试。
    prepare-package 在真正打包之前,为准备打包执行任何必要的操作。
    package 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件。
    pre-integration-test 在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量。
    integration-test 处理和部署必须的工程包到集成测试能够运行的环境中。
    post-integration-test 在集成测试被执行后执行必要的操作。例如,清理环境。
    verify 运行检查操作来验证工程包是有效的,并满足质量要求。
    install 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。
    deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。

      这个阶段我们执行的命令是:mvn compile

      Maven Site 插件一般用来创建新的报告文档、部署站点等。执行命令为mvn site

    仓库

     maven仓库指的是存放文件所用的地方。分三种

      本地仓库。本地自己使用。

      中央仓库。项目组自己使用。

      远程仓库。远程调用。

    本地仓库

    Maven 本地仓库是机器上的一个文件夹。它在你第一次运行任何 maven 命令的时候创建。

    Maven 本地仓库保存你的工程的所有依赖(library jar、plugin jar 等)。当你运行一次 Maven 构建,Maven 会自动下载所有依赖的 jar 文件到本地仓库中。它避免了每次构建时都引用存放在远程机器上的依赖文件。

    Maven 本地仓库默认被创建在 %USER_HOME% 目录下。要修改默认位置,在 %M2_HOME%conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
       http://maven.apache.org/xsd/settings-1.0.0.xsd">
          <localRepository>C:/MyLocalRepository</localRepository>
    </settings>

    中央仓库

    Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。

    中央仓库的关键概念:

    • 这个仓库由 Maven 社区管理。
    • 不需要配置。
    • 需要通过网络才能访问。

    要浏览中央仓库的内容,maven 社区提供了一个 URL:http://search.maven.org/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库。好像已经废了不太好用

    远程仓库

    如果 Maven 在中央仓库中也找不到依赖的库文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。

    项目构建

    首先我们按之前所说创建一个maven
    然后我们修改pom。xml为
    <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.companyname.projectgroup</groupId>
          <artifactId>project</artifactId>
          <version>1.0</version>
          <dependencies>
             <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
             </dependency>
          </dependencies>  
    </project>

    你可以看到项目自动导入了jar包

    然后你加入如下代码导入servlet

          <dependency>
                <groupId>javax.servlet</groupId>
                     <artifactId>javax.servlet-api</artifactId>
                     <version>3.0.1</version>
                 <scope>compile</scope>
             </dependency>

    最后导入SpringMVC的Pom.xml如下

    <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.companyname.projectgroup</groupId>
          <artifactId>project</artifactId>
          <version>1.0</version>
          <dependencies>
             <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
             </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                     <artifactId>javax.servlet-api</artifactId>
                     <version>3.0.1</version>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                <groupId>org.springframework</groupId>
               <artifactId>spring-web</artifactId>
                <version>4.1.2.RELEASE</version>
                <scope>compile</scope>
              </dependency>
              <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
               <version>4.1.2.RELEASE</version>
               <scope>compile</scope>
             </dependency>
          </dependencies>  
    </project>
     
  • 相关阅读:
    vs2015 停 在 update kb2999226 一直不动
    修复vs2012出现 “无法找到包源”的错误
    forward 和redirect的区别
    软件测试分类
    centos7安装HTTPS协议
    php抓取网页特定div区块及图片,从简单入手
    nginx报 File not found 错误
    关于端口
    调试技巧:让断点停在for循环中的 i 为某个值得时候
    an AC a day keeps the WA away ~
  • 原文地址:https://www.cnblogs.com/blackdeng/p/8969841.html
Copyright © 2011-2022 走看看