当前位置:首页 > 开发 > 开源软件 > 正文

Maven

发表于: 2014-04-06   作者:ccii   来源:转载   浏览次数:
摘要: 一、Maven 简介 1. 作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。 2.下载地址: http://maven.apache.org/download.html 3. Windows本地安装:   将maven解压到某个目录下;   增加环境变量 M2_HOME(E:\work\
一、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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

推荐文章
1 maven
2 Maven
3 maven
4 maven
5 Maven
6 maven
7 maven
8 Maven
9 maven
10 maven
11 maven
12 MAVEN
13 Maven
14 maven
15 maven
16 maven
17 Maven
18 Maven
19 maven
20 maven
编辑推荐
1 Maven
搞了3天,终于搞定了maven + hudson + p4的集成配置。 下面一一介绍下各个工具的使用。 Maven: 安装
2 maven
   最近,开发中要用到maven,所以对maven进行了简单的学习。因为有个maven高手在身边,所以,很
3 Maven
Maven: The Complete Reference: http://www.sonatype.com/books/mvnref-book/reference/public-bo
4 Maven
Maven: The Complete Reference: http://www.sonatype.com/books/mvnref-book/reference/public-bo
5 maven
用maven打包时 servlet这种应用服务器的jar包需要用maven容器来管理,不能在libraies中简单加上tomca
6 maven
在Maven2 安装jar到你的资源库 首先是安装maven2、配置环境变量、配置自己的setting.xml、配置自己
7 maven
一、下载并安装apache-maven-3.0.4-bin.zip 将文件解压,设置环境变量MAVEN_HOME=C:/apache-maven-3
8 Maven
一.Maven 是什么? Maven 英文名称:专家,由名字可见,这个工具野心非常大。有人说他是"构建工具",
9 maven
1.对maven的认识和搭建。 2,后期对maven的学习。 maven搭建后无法导入jar正在解决问题: 解决方案:
10 maven
mvn package -Dmaven.test.skip=true “编码 GBK 的不可映射字符”问题的解决 http://www.cnblogs.co
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号