• windows/Linux/Mac下安装maven,maven作用,Maven使用阿里云国内镜像


    Linux下安装maven

    1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.3.9-bin.tar.gz,下载可以使用wget命令;

    2.进入下载文件夹,找到下载的文件,运行如下命令解压

    tar -xvf  apache-maven-2.2.1-bin.tar.gz


    解压后的文件夹名为apache-maven-3.0.3

    3.使用mv命令将apache-maven-3.0.3文件夹拷贝到自己指定的文件夹,比如/usr/local/下

    mv -rf apache-maven-3.0.3 /usr/local/


    4.配置环境变量,编辑/etc/profile, 或/etc/profile.d/jdk.sh文件,添加如下代码

    export MAVEN_HOME=/usr/local/apache-maven-3.0.3
    export PATH=${PATH}:${MAVEN_HOME}/bin

    Mac:

    export MAVEN_HOME=/Users/xxx/Applications/apache-maven-3.3.9
    export PATH=${PATH}:${MAVEN_HOME}/bin


    5.保存文件,并运行如下命令使环境变量生效

    source /etc/profile

    mac/linux都可以设在~/.bashrc这个文件中,或者~/.bash_profile
    6.在控制台输入如下命令,如果能看到Maven相关版本信息,则说明Maven已经安装成功

    mvn -v
     
     
    windows下Maven 的安装
     
    1.检查JDK。在安装 Maven 之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量。
     
    2.下载maven3,最新版本是 Maven 3.2.1,下载地址:http://maven.apache.org/download.html   
    下载 apache-maven-3.2.1-bin.zip 文件后,并解压到  D:apache-maven-3.2.1-bin
     
    3.配置maven3的环境变量:先配置 M2_HOME 的环境变量,新建一个系统变量 MAVEN_HOME , 路径是:D:apache-maven-3.2.1-bin 
    再配置path环境变量,在path值的末尾添加";%MAVEN_HOME%in"
     
    4.点击确定之后,打开cmd窗口:输入 mvn -version, 出现正确的内容表示安装成功。
     
     
     
     

    Maven的主要特点:

    • 遵循最佳实践的简单项目设置 - 在几秒钟内启动新项目或模块
    • 所有项目的一致使用 - 意味着新开发人员进入项目的时间不会增加
    • 卓越的依赖管理,包括自动更新,依赖关闭(也称为传递依赖)
    • 能够轻松地同时处理多个项目
    • 一个庞大且不断增长的库和元数据库,可以立即使用,并与最大的开源项目仓库一起,以实现最新版本的实时可用性
    • 可扩展,能够轻松编写 Java或脚本语言的插件
    • 只需很少或不需要额外配置即可即时访问新功能
    • 用于在Maven之外进行依赖关系管理和部署的Ant任务
    • 基于模型的构建:Maven能够根据项目的元数据将任意数量的项目构建到预定义的输出类型(如JAR,WAR或分发)中,而无需在大多数情况下执行任何脚本。
    • 站点的项目信息的连续性:使用与构建过程相同的元数据,Maven能够生成包含您需要添加的任何文档的网站或PDF,并添加有关项目开发状态的标准报告。在“项目信息”和“项目报告”子菜单下,可以在本网站左侧导航栏的底部看到此信息的示例。
    • 发布管理和发布发布:没有太多额外配置,Maven将与您的源代码控制系统(如Subversion或Git)集成,并根据特定标记管理项目的发布。它还可以将其发布到分发位置以供其他项目使用。Maven能够发布单个输出,例如JAR,包含其他依赖关系和文档的存档,或者作为源代码分发。
    • 依赖管理:Maven鼓励使用JAR和其他依赖项的中央存储库。Maven附带了一种机制,您的项目客户可以使用该机制从中央JAR存储库下载构建项目所需的任何JAR,就像Perl的CPAN一样。这允许Maven的用户跨项目重用JAR并鼓励项目之间的通信,以确保处理向后兼容性问题。
     
     

    Maven使用阿里云国内镜像
    1、修改maven根目录下的conf文件夹中的setting.xml文件,内容如下:
    <mirrors>
    <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>
    </mirrors>

     
     
     
    修改IDEA的maven配置:
     setting-->build-->maven
     (1)user setting file:$MAVEN_HOME/conf/setting.xml
     (2)local repository:$MAVEN_HOME/repository/
     

    Maven是一个构建工具,服务与构建.使用Maven配置好项目后,输入简单的命令,如:mvn clean install,Maven会帮我们处理那些繁琐的任务.
    Maven是跨平台的.
    Maven较大化的消除了构建的重复.
    Maven可以帮助我们标准化构建过程.所有的项目都是简单一致的,简化了学习成本.
    总之,Maven作为一个构建工具,不仅帮我们自动化构建,还能抽象构建过程,提供构建任务实现.他跨平台,对外提供一致的操作接口,这一切足以使他成为优秀的,流行的构建工具.
    但是Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件.
    使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。

    1. maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。
    2.为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来较精确地定位每一个构件(artifact)。
    3.还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表,版本控制系统,许可证,缺陷管理系统地址。
    4.maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(Nexus),我们还能对其进行快速搜索
    5.maven对于目录结构有要求,约定优于配置,用户在项目间切换就省去了学习成本。

    1、原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下,而借助Maven,可以将jar包仅仅保存在“仓库”中,有需要使用的工程只需要“引用”这个文件,并不需要重复复制到工程中。
    2、原来的项目中所需要的jar包都是提前下载好的,而Maven在联网状态下会自动下载所需要的jar包。首先在本地仓库中找,找不到就在网上进行下载。
    3、原来的项目中一个jar包所依赖的其他jar包必须手动导进来,而Maven会自动将被依赖的jar包导进来。
    4、原来的项目一个项目就是一个工程,而借助Maven可以将一个项目拆分成多个工程。

      (1) 本地仓库:本地仓库就在自己的机器上,我们可以在自己的机器上创建一个maven仓库,然后就需要的jar包导入进去,就可以在项目中引用。
      (2) 私服仓库:私服仓库在公司局域网内,公司可以在自己的局域网内创建一个仓库,将项目所需要的jar包存放在此仓库中,这样整个项目组就都可以使用此仓库提供的jar包,不再需要在自己本地创建仓库来保存jar包。
      (3) 中央仓库:中央仓库是最大的一个仓库,由Apache组织来负责维护,几乎包括了现在所有的jar包(有一些涉及版权问题没有,比如:oracle数据库的连接jar包),但是中央仓库的访问速度非常慢。


    maven作用
    1.控制项目间依赖关系方案
    A项目依赖B项目的某些功能。将B项目打包为jar,并在A项目的Library下导入B的jar文件。
    这样做有着很明显的缺点:
    1.如果在开发过程中,发现B中的bug,则必须重新将B打包并对A项目进行重编译操作
    2.在协同开发A项目时,为了保证其能够正常运行,
    要么选择将B打包入A中,
    要么选择将B一样发布出去并告知开发者使用方法。显然这两个方法都不太好,
    *前者可能造成资源浪费(比如开发者可能正在开发依赖B的其它项目,B已经存储到本地了),而后者则会为项目正常运行带来风险(一旦把工作交给人工注定会带来一定的失败率)。

    2Maven的核心功能便是合理叙述项目间的依赖关系。
    所有的Maven项目包含着一个名为pom.xml的文件,在文件中记录着自己的<groupId><artifactId><version>等字段,这些字段在创建Maven项目时填写,Maven会依据它们来定位到该项目。
    在pom中的另一个关键标签是<dependencies>,该标签下可以包含若干个<dependency>标签,而<dependency>下则是上面介绍的<groupId><artifactId><version>等依赖字段,它们确定着一个唯一的项目版本。

    3[Maven库]
    以刚才的A、B项目为例,在A项目的pom文件中写入<dependency>关联B项目,Maven会在工作区中找到B项目,并创建依赖。此时A项目可以直接访问到B项目中的类资源,而且对A调试时依然会击中B项目中设置的断点。
    除去工作区的依赖关联外,Maven也可以关联一个远端镜像中的项目,在默认情况下,如果工作区中没有对应的项目记录,Maven会连接到中心仓库查找,如果找到,它会把项目下载到本地库中(Windows中本地库位于用户文档的.m2目录下),并自动设置关联。这是一个十分便利的特性,在我们需要额外jar包支持时,不再需要进行手动的下载和引入,我们仅需要将需要项目对应的依赖字段粘贴到pom的合适位置,剩下的交给Maven完成即可。

    4.[其它特性]
    1.镜像源
    很明显,Maven中心仓库负载比较大,而且不在国内,因此速度非常慢,有时甚至会找不到依赖。因此,尤其是在小规模团队开发这种场合下,搭建一个Maven私服会极大的提升效率。这里推荐一个Maven镜像搭建工具:Nexus:http://www.sonatype.org/nexus/
    使用它可以很快速方便的搭建私有Maven镜像源,之后在Maven的settings.xml里进行配置即可。
    2.惰性下载src源码
    在一些时候,我们需要参阅依赖项目的源文件,此时可以尝试直接双击class文件,如果Maven镜像源中存在源文件,会自动下载到本地,eclipse会自动加载并显示。
    3.编译参数配置
    笔者使用Eclipse Luna版,Maven默认的Java编译版本为1.5,我们可以在pom指定其编译版本,使其提升至1.7(参考luajava pom中的build标签);此外这些设置也会被诸如jenkins持续集成等自动化工具读取并进行恰当配置。

    思考:
    maven描述项目间依赖,在pom.xml中描述之后,maven会下载相关依赖,不需要手动导入。
    并且该文件可以描述build相关信息,jenkins可以读取相关信息

  • 相关阅读:
    P2168 [NOI2015]荷马史诗
    P3195 [HNOI2008]玩具装箱TOY
    P1972 [SDOI2009]HH的项链
    P2339 提交作业usaco
    P3974 [TJOI2015]组合数学
    P2831 愤怒的小鸟
    [校内模拟题4]
    P3952 时间复杂度
    P3531 [POI2012]LIT-Letters
    2019.10.1 qbxt模拟题
  • 原文地址:https://www.cnblogs.com/timssd/p/4738205.html
Copyright © 2020-2023  润新知