`
ccii
  • 浏览: 56874 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Maven

阅读更多
一、Maven 简介
1. 作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

2.下载地址:http://maven.apache.org/download.html

3. Windows本地安装:
  将maven解压到某个目录下;
  增加环境变量 M2_HOME(E:\work\apache-maven-3.0.3),然后在Path下面增加 %M2_HOME%\bin;
  在cmd窗口测试: mvn -v

4 .Eclipse插件m2eclipse安装地址:http://m2eclipse.sonatype.org/sites/m2e
  m2eclipse要求使用JDK,而eclipse默认运行有JRE上,原需在eclipse.ini文件上配置如下:
    --launcher.XXMaxPermSize
    256M
    -vm
    D:/Program Files/Java/jdk1.6.0_14/bin/javaw.exe
    -vmargs
    -Dosgi.requiredJavaVersion=1.5
    -Xms512m
    -Xmx512m

5. 配置MAVEN_OPTS环境变量(-Xms256m -Xmx512m),控制Maven运行的内存。

6. 配置用户范围setting.xml,放在~/.m2/settings.xml(全局放在%M2_HOME%/conf/settings.xml),放在用户范围的好处是Maven升级时不用重新拷贝settings文件,而且不会影响本系统上面的其它用户。

二、Maven的入门使用
1. 新建一个目录hello-world

2. 编写POM
  POM(项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。在hello-world下新建一个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">
    //指定当前POM模型的版本
    <modelVersion>4.0.0</modelVersion>
    //定义项目的基本坐标,groupId定义项目属于那个组,artifactId定义当前Maven项目在组中唯一的ID,version指定项目当前版本
    <groupId>com.mycom.myproject</groupId>
    <artifactId>hello_world</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>projectName</name> //声明一个更为友好的项目名称
    <packaging>jar</packaging> //声明打包类型
  </project>

3. 编写主代码
  项目主代码和测试代码不同,项目的主代码会被打包到最终的构件中(如jar),而测试代码只在运行测试时用到,不会被打包。默认情况下,Maven假设项目主代码位于src/main/java/目录,创建该目录,然后在下面创建文件com/mycom/myproject/helloworld/HelloWorld.java,注意下面的包级目录。
  package com.mycom.myproject.helloworld;
  public class HelloWorld{
    public String sayHello(){
      return "Hello Maven";
    }
    public static void main(String[] args){
      System.out.print(new HelloWorld().sayHello());
    }
  }

4. 使用Maven命令进行编译(mvn clean compile)
  clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码到target/classes目录下,

5. 编写单元测试代码
  Maven项目中默认的测试代码目录是src/test/java,新建此目录。要使用JUnit,首先需要为Hello World项目添加一个JUnit依赖,修改项目的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.mycom.myproject</groupId>
    <artifactId>hello_world</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>projectName</name>
    <packaging>jar</packaging>

    //添加JUnit依赖
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope> //该依赖只对测试有效,默认为compile对主代码和测试代码都有效
        </dependency>
    </dependencies>
  </project>

  编写测试代码如下:

  package com.mycom.myproject.helloworld;
  import static org.junit.Assert.assertEquals;
  import org.junit.Test;
 
  public class HelloWorldTest{
    @Test
    public void testSayHello(){
        HelloWorld hw = new HelloWorld();
        String result = hw.sayHello();
        assertEquals("Hello Maven",result);
    }
  }

6. 使用Maven命令进行测试(mvn clean test)
  测试代码编译之后在target/test-classes下生成了二进制文件,并生成了surefire和surefire-reports测试文件。

7. 打包(mvn clean package)
  POM中指定了打包类型为jar,如果没有指定默认也为jar。将项目打包成一个名为 hello-world-1.0-SNAP-SHOT.jar文件放在target/输出目录中
 
8. 安装(mvn clean install)
  这样,你的jar就放到你的本地库了,其他的Maven项目就可以直接引用这个jar了。

9. 使用Archetype生成项目骨架
 
10. m2eclipse简单使用
  导入Maven项目:Import -> Maven -> Existing Maven Projects,选择后它会自动去下载所有依赖,但是eclipse下载依赖的速度真的太慢了,有时候一个包下不了卡死半天。这时可以使用命令行方式随便执行一个mvn命令都会自动去下载依赖,一直重复执行直到Success。
  创建Maven项目:New -> Other -> Maven -> Maven Project -> Next(不要选Create a simple project ...) -> Next -> 输入groupId、artifactId、version、package -> Finish。
  运行Maven命令:在Maven项目或者pom.xml上右击 -> Run As -> Maven build...(运行自定义命令) ->  在Goals里输入我们想要执行的命令 -> Run。

三、Maven仓库
1. Maven在某个统一的位置存储所有Maven项目共享的构件,实际的Maven项目将不再各自存储其依赖文件,它们只需要声明这些依赖的坐标,在需要的时候(如编译项目的时候需要将依赖加入到classpath中),Maven会自动根据坐标找到仓库中的构件,并使用它们。项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。

2. 仓库的布局
  任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,该路径与坐标的大致对应关系为 groupId/artifactId/version/artifactId-version.packaging 。

3. 查找仓库构件
  当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用,如果本地仓库和远程仓库都没有需要的构件,Maven就会报错。

4. 本地仓库
  默认情况下,每个用户在自己的用户目录下都有一个路径名为 C:\Users\xxx\.m2\repository\ (Linux路径为/home/xxx/.m2/repository/)的本地仓库。也可以修改Maven安装目录下的conf/settings.xml文件修改默认路径如下:
  <localRepository>E:\repositorywy</localRepository>

5. 私服(Nexus)
  私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家使得。
  在settings.xml中配置Nexus仓库如下:
 
  <?xml version="1.0" encoding="UTF-8"?>
  <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>E:\repositorywy</localRepository>

    <servers> //Nexus仓库对于匿名用户中只读的,故需添加认证信息
      <server>
        <id>nexus-releases</id>
        <username>admin</username>
        <password>admin</password>
      </server>
    </servers>

    <profiles> //配置xxxNexus仓库
      <profile>
       <id>xxxNexus</id>
       <repositories>
            <repository>
                <id>xxxNexus</id>
                <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>xxxNexus</id>
                <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
      </profile>
    </profiles>
    <activeProfiles> //激活profile
      <activeProfile>xxxNexus</activeProfile>
    </activeProfiles>
    ......
  </settings>

  使用 mvn deploy 命令将本地构件放入私库中。

6. 中央仓库
  中央仓库是Maven核心自带的远程仓库,它包含了绝大部分开源的构件,这就是Maven为什么能做到“开箱即用”。Maven的安装文件自带了中央仓库的配置。
分享到:
评论

相关推荐

    maven 3.5.2 maven 3.5.2 maven 3.5.2

    ** Maven 概述** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一个统一的构建过程,简化了项目的构建、依赖管理以及文档生成等任务。Maven 3.5.2是Maven的一个稳定版本,包含了众多...

    开源工具Maven3.9.4版本压缩包

    Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven...

    Maven全版本资源,Maven 3.0.5-3.8.5,每个版本包含4个文件,Maven3全资源打包下载,Maven全集

    apache-maven-3.0.5 apache-maven-3.1.1 apache-maven-3.2.5 apache-maven-3.3.9 apache-maven-3.5.4 apache-maven-3.6.3 apache-maven-3.8.5 每个版本包含4个文件: apache-maven-3.8.5-bin.tar.gz apache-maven-...

    apache-maven-3.6.0_apache-maven-3.6.0_maven压缩包_maven3.6.0下载_

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和文档。Maven 3.6.0是该工具的一个稳定版本,提供了许多改进...

    Windoiws的maven3.8.8

    **Windows环境下Maven 3.8.8的安装与配置** Maven是Apache软件基金会开发的一个项目管理和综合工具,主要用于Java项目的构建、依赖管理和文档生成。Maven 3.8.8是Maven的一个版本,它包含了对之前版本的一些改进和...

    apache-maven-3.6.2_maven_

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和依赖关系。Maven 的核心理念是通过标准化的构建生命周期和...

    maven 3.8.8 解压安装版

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,...

    maven3.2.5安装包下载

    Maven最新版是款项目管理和构建自动化工具。Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System)。 安装...

    Mac的maven安装包apache-maven-3.6.3.zip

    在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是项目管理和构建的首选。本篇将详细讲解如何在Mac系统上,特别是配备M1芯片的MacBook上安装Apache Maven 3.6.3。 Apache Maven是一个基于项目...

    最新Maven版本:apache-maven-3.6.0

    Apache Maven 是一个强大的Java项目管理工具,它极大地简化了构建、依赖管理和项目文档的生成过程。Maven 3.6.0是该工具的一个稳定版本,提供了多项改进和新特性,旨在提高开发效率和增强项目的可维护性。 Maven的...

    超全面搭建Maven仓库

    ### 超全面搭建Maven仓库 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。本文将详细介绍如何搭建Maven环境、配置Maven仓库以及在Eclipse中集成Maven。 #### 一、下载安装Maven...

    maven.rar apache-maven-3.5.4

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和文档,通过一套统一的构建生命周期和插件系统,极大地简化了软件...

    maven历史版本下载

    Maven是Java开发领域中不可或缺的项目管理和构建工具,由Apache Software Foundation开发并维护。它通过一套规范化的构建过程,使得Java项目管理变得简单而高效。本篇文章将深入探讨Maven的历史版本以及如何下载这些...

    maven资源 apache-maven-3.3.9-bin.zip

    Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化构建生命周期和依赖管理,使得开发者能够更高效地构建、测试和部署Java应用程序。Maven 3.3.9是Maven的一个稳定版本,它包含了多个...

    apache-maven-3.8.6.zip

    apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...

    apache-maven-3.5.2

    Apache Maven 是一个强大的项目管理工具,广泛用于Java应用程序的构建、管理和依赖管理。Maven 3.5.2是该工具的一个稳定版本,专为Mac操作系统优化。在本文中,我们将深入探讨Maven的核心概念、功能以及如何在Mac...

    Maven使用tomcat8-maven-plugin插件.docx

    Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...

    apache-maven-3.9.6-bin.zip

    Apache Maven 是一个强大的项目管理和构建工具,可用于 Java 项目的构建、依赖管理和项目管理。Apache Maven 3.9.6-bin 是 Apache Maven 的一个特定版本,其中的“bin”表示这是二进制分发版,适用于直接使用而无需...

    maven3.8下载包

    Maven是Java世界中的一款强大的项目管理和构建工具,它极大地简化了软件项目的构建、依赖管理和生命周期过程。Maven 3.8版本是该工具的一个重要更新,提供了更多的优化和改进,旨在提升开发效率和稳定性。 Maven的...

    maven之开源中国Maven库

    【标题】"maven之开源中国Maven库" 指的是使用 Maven,一个流行的Java项目管理和集成工具,与开源中国的Maven仓库进行交互。开源中国Maven库是中国的一个开源软件资源平台,提供了大量的开源Java库,使得开发者可以...

Global site tag (gtag.js) - Google Analytics