zoukankan      html  css  js  c++  java
  • 【项目管理和构建】——Maven简介(一)

      在现实的企业中,以低成本、高效率、高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的。当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等。如果你想成为一个优秀的管理者,你必须得会使用高大上的管理工具。

          从这篇博文开始,我会给大家介绍更多的项目管理工具,经过点点滴滴的积累,不断的进步,最终成为管理大牛。

    简介

    我先看一下Apache官网的解释:

    [java] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.  

    翻译:Maven是基于项目对象模型(POM即Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

            通过上面这句话,我们可以了解到Maven不仅仅可以管理项目的构建,而且可以根据项目源码自动生成文档,以及报告。说句实话,对于我这种不太愿意写文档的人来说,实在是太方便了。

    下载

           下载地址:http://maven.apache.org/release-notes-all.html,现在Maven的最新版本是Maven3.2.5,大家可以根据自己的需要自行下载。

    什么是Maven

    [java] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. Maven, a Yiddish word meaning accumulator of knowledge, was originally started as an attempt to simplify the build processes in the Jakarta Turbine project. There were several projects each with their own Ant build files that were all slightly different and JARs were checked into CVS. We wanted a standard way to build the projects, a clear definition of what the project consisted of, an easy way to publish project information and a way to share JARs across several projects.  
    2.   
    3. The result is a tool that can now be used for building and managing any Java-based project. We hope that we have created something that will make the day-to-day work of Java developers easier and generally help with the comprehension of any Java-based project.  


    翻译:

            Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者想要更加标准的方式构建项目,该项目的清晰定义包括:一种很方便的方式来发布项目信息,以及一种在多个项目中共享JAR的方式。

         现在,Maven,成为了一种被用于构建和管理任何基于Java项目的工具。Maven创始者希望能够更多的让Java开发人员的日常工作更加容易,帮助理解任何基于Java项目。

    maven的目标

    [java] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:  
    2.   
    3. 1、Making the build process easy  
    4. 2、Providing a uniform build system  
    5. 3、Providing quality project information  
    6. 4、Providing guidelines for best practices development  
    7. 5、Allowing transparent migration to new features  

    翻译:

    Maven的主要目标是为了使开发人员在最短的时间内领会项目的所有状态。为了达到这一目标,Maven考虑一下五个方面的内容:

    1、使得构建过程更加容易,方便编译,打包,发布

    2、为每个项目提供统一的配置

    3、提供优质项目信息

    4、最佳开发实践

    5、安装和更新第三插件透明化

    准备工作

    安装

    安装maven超级简单,总共分四步:

    1. 下载 Maven ,其实就是一个压缩包,解压一下

    2. 配置一下环境变量

      有两个环境变量可以配置:

      • MAVEN_HOME = D:mavenapache-maven-3.2.3

      • MAVEN_OPTS = -Xms128m -Xmx512m(可选)

    3. 在path变量末尾加入“%MAVEN_HOME%in;”。

      以上M2_HOME 是必须要配置的,如果想让 Maven 跑得更快点,可以根据自己的情况来设置 MAVEN_OPTS。 

    4. 最后,验证是否安装成功

      现在我们打开 cmd,输入:

      mvn -v

      我想您一定会看到一些信息,如下图所示: 

    恭喜您,Maven 安装成功!

    在使用 Maven 之前,我们必须要了解一下 Maven 到底是怎样管理 jar 包的,这就是 Maven 仓库要干的活了。

    了解Maven仓库

    使用 Maven 给我们带来的最直接的好处,就是统一管理jar 包,那么这些 jar 包存放在哪里呢?它们就在您的 本地仓库 中,默认地址位于 C:Users用户名.m2 目录下(当然也可以修改这个默认地址),下面我们就修改一下这个默认地址。

    实际上我们可以将本地仓库理解“缓存”,目的是存放jar包。开发项目时项目首先会从本地仓库中获取 jar 包,当无法获取指定 jar 包的时候,本地仓库会从 远程仓库(或 中央仓库) 中下载 jar 包,并“缓存”到本地仓库中以备将来使用。

    远程仓库(中央仓库)是 Maven 官方提供的,可通过 http://search.maven.org/ 来访问。这样一来,本地仓库会随着项目的积累越来越大。通过下面这张图可以清晰地表达项目、本地仓库、远程仓库之间的关系。

    既然 Maven 安装了,那么本地仓库也就有了,默认路径在我们C盘目录下,对于专业人士来说C盘很危险,下面我们修改一下默认配置。

    配置

    Maven会将下载的类库(jar包)放置到本地的一个目录下,如果想重新定义这个目录的位置就需要修改Maven本地仓库的配置:

    修改文件:D:mavenapache-maven-3.2.3confsetting.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
           | The path to the local repository maven will use to store artifacts.
           |
           | Default: ${user.home}/.m2/repository
          <localRepository>/path/to/local/repo</localRepository>
          -->
            <localRepository>D:maven
    epository</localRepository>
    
    </settings>
    • 依据该配置,Maven就会将下载的类库保存到D:maven epository中。

    实验一下我们刚才做的事情产生作用没有,控制台输入:

    mvn help:system

    如图所示效果: 

    如果没有任何问题,执行完该命令之后,在D:maven epository下面就会多出很多文件,这些文件就是maven从中央仓库下载到本地仓库的文件,maven已经开始为我们工作了。

    准备工作

    在eclipse配置maven之前需要我们做好准备工作,如下: 
    1. 安装jdk 
    2. 已安装好 maven,将maven配置成功 
    3. 下载Eclipse,解压缩安装完成,建立工作空间。 
    这些内容相信大家都已经轻车熟路了,如果不会,请大家查看上篇博文,这里就不再累述了。

    eclipse配置maven

    检查eclipse的maven插件是否安装成功,如图: 

    若没有安装maven插件,我们需要先安装maven插件。

    安装maven插件

    eclipse安装插件有常用两种方式,在线方式和离线方式。这两种安装方式我建议大家使用离线方式,离线方式更加方便,简单,这两中安装方式网上的资料很多,也非常简单,我就不再累述了。给大家推荐一篇即可:

    安装Eclipse Maven插件的几种方法

    配置maven

    1. 配置maven安装目录 
      依次打开Window –> Perferences –> Maven ,展开Maven的配置界面,如上图; 
       
      然后点击Installations –> add 选择maven安装目录,这里我的Maven安装目录为D:mavenapache-maven-3.2.3,选择你的Maven安装目录,并点击确定, 之后可以点击Apply,点击OK,即可完成 
    2. 然后, 我们在Maven的配置界面,设置User Settings 
      Global Settings选择maven 安装目录下conf文件夹下的settings.xml,这里我的Maven安装目录为D:mavenapache-maven-3.2.3confsettings.xml,选择你的Maven安装目录,检查Local Repository 项,如果为D:/maven/repository则配置成功,否则重新配置上一步。 

    恭喜你,现在我们已经配置好了eclipse,下面,我们可以创建maven项目了。

    创建maven项目

    1. 我们在Eclipse菜单栏中点击File->New->Other->Maven,在弹出的对话框中会看到,如下图所示: 
    2. 选择Maven Project,请选中Create a simple project(skip archetype selection),之后点击Next 
    3. 填写Group id和Artifact id, Version默认,Packaging默认为jar,Name,Description选填,其他的不填 

    之后点击Finish即可,如图所示:

     
    4. 前三步就可以创建一个简单的maven项目,如果我们想创建一个Maven的web项目,把第三步的Packaging的类型改为war,之后点击Finish即可,如图所示: 

    恭喜你,我们的Maven项目也创建完成了,简单吧。

    下篇博文,我们使用Nexus搭建Maven私服,敬请期待吧。

  • 相关阅读:
    教你作一份高水准的简历
    python并发
    阻塞,非阻塞,同步,异步
    python三层架构
    paramiko与ssh
    python-进程
    生产者消费者模型
    python-线程
    python-socket
    python-mysql
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6420014.html
Copyright © 2011-2022 走看看