`
ccii
  • 浏览: 56142 次
  • 性别: 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安装maven安装maven安装maven安装maven安装

    maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...

    maven3.6maven3.6maven3.6

    Maven是Java世界中的一款强大的项目管理和构建工具,它极大地简化了软件项目的构建、依赖管理和文档生成过程。在本文中,我们将深入探讨Maven 3.6版本,这是Maven的一个重要迭代,带来了许多改进和优化。 Maven的...

    maven 3.5.2 maven 3.5.2 maven 3.5.2

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

    Maven仓库apache-maven-3.2.5

    Apache Maven 是一个强大的项目管理工具,它主要用于Java项目的构建、依赖管理和项目信息管理。Maven 3.2.5是该工具的一个版本,发布于2014年,旨在提高构建效率,增强稳定性,并修复了前一版本的一些已知问题。 在...

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

    Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;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是该工具的一个稳定版本,提供了许多改进...

    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-...

    Windoiws的maven3.8.8

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

    maven3.2.5安装包下载

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

    maven 3.8.8 解压安装版

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

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

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

    超全面搭建Maven仓库

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

    maven.rar apache-maven-3.5.4

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

    MavenRunHelper.zip

    《MavenRunHelper:构建与管理Java项目的专业助手》 MavenRunHelper,正如其名,是一款专为Java开发者设计的Maven辅助工具,旨在简化Maven项目的运行和管理过程。Maven作为Java世界中广泛使用的项目管理和构建系统...

    maven历史版本下载

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

    Maven exec-maven-plugin:执行外部命令的实践指南

    Apache Maven是一个强大的项目管理工具,它提供了丰富的插件系统来扩展构建过程。exec-maven-plugin是Maven生态系统中的一个插件,它允许用户在Maven构建过程中执行外部命令或脚本。这使得Maven项目可以集成更多的...

    maven打包 maven打jar包详细步骤

    在Java开发中,Maven是一个强大的构建工具,它简化了项目的构建、依赖管理和部署过程。本文将详细讲解如何使用Maven来打包一个Java项目,并创建JAR文件。 首先,Maven有三个主要生命周期阶段:`clean`、`default`...

    apache-maven-3.8.5

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

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

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

Global site tag (gtag.js) - Google Analytics