zoukankan      html  css  js  c++  java
  • Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏

    更多内容请参考官方文档:http://maven.apache.org/guides/index.html 

    官方文档很详细,基本上可以查找到一切相关的内容。

    另外,快速入门可参考视频:孔浩的maven视频。

    一、快速入门

    (一)搭建环境
    1、下载maven,并将之解压
    或者直接使用yum 来安装

    2、配置环境变量
    export PATH=/home/jediael/setupfile/apache-maven-3.1.1/bin:$PATH

    3、验证环境
    [jediael@master maven_demo]$ mvn -v
    Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800)
    Maven home: /home/jediael/setupfile/apache-maven-3.1.1
    Java version: 1.7.0_51, vendor: Oracle Corporation
    Java home: /usr/java/jdk1.7.0_51/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "2.6.32-431.17.1.el6.x86_64", arch: "amd64", family: "unix"

    (二)项目编写
    1、建立如下目录结构
    [jediael@master maven_demo]$ tree
    .
    ├── pom.xml
    └── src
        ├── main
        │   └── java
        │       └── com
        │           └── ljh
        │               └── mavendemo
        │                   └── HelloMaven.java
        └── test
            └── java
                └── com
                    └── ljh
                        └── mavendemo
                            └── HelloMavenTest.java

    11 directories, 3 files

    2、HelloMaven.java内容如下
    package com.ljh.mavendemo;
    public class HelloMaven{
        public String sayHello(String s){
            return "hello:"+s;
        }
        public static void main(String[] args){
            HelloMaven hm = new HelloMaven();
            System.out.println(hm.sayHello("maven"));
        }

    }

    3、HelloMavenTest.java内容如下:
    package com.ljh.mavendemo;

    import org.junit.*;
    import static org.junit.Assert.*;
    public class HelloMavenTest{
        
        @Test
        public void testSayHello(){
            HelloMaven hm = new HelloMaven();
            assertEquals("hello:Jason",hm.sayHello("Jason"));
       }
    }

    4、pox.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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.ljh.mvn</groupId>
      <artifactId>mavendemo</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>mavendeom</name>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.10</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>


    (三)运行项目
    1、编译项目
    $ mvn compile

    2、运行测试
    $ mvn test

    3、也可以对项目直接打包成jar包
    $ mvn package
    此过程也会执行test

    4、若所生成的jar包中包括main方法,则可以使用以下命令执行
    $ java -cp target/mavendemo-1.0-SNAPSHOT.jar com.ljh.mavendemo.HelloMaven
    hello:maven

    经过这些步骤后的目录结构如下:
    [jediael@master maven_demo]$ tree
    .
    ├── pom.xml
    ├── src
    │   ├── main
    │   │   └── java
    │   │       └── com
    │   │           └── ljh
    │   │               └── mavendemo
    │   │                   └── HelloMaven.java
    │   └── test
    │       └── java
    │           └── com
    │               └── ljh
    │                   └── mavendemo
    │                       └── HelloMavenTest.java
    └── target
        ├── classes
        │   └── com
        │       └── ljh
        │           └── mavendemo
        │               └── HelloMaven.class
        ├── maven-archiver
        │   └── pom.properties
        ├── mavendemo-1.0-SNAPSHOT.jar
        ├── surefire-reports
        │   ├── com.ljh.mavendemo.HelloMavenTest.txt
        │   └── TEST-com.ljh.mavendemo.HelloMavenTest.xml
        └── test-classes
            └── com
                └── ljh
                    └── mavendemo
                        └── HelloMavenTest.class

    22 directories, 9 files


    (四)项目间互相引用

    1、将上述项目安装至maven库中

    $ mvn install

    这会在/home/jediael/.m2/repository/com/ljh目录下生成以下文件:

    .
    └── mvn
        └── mavendemo
            ├── 1.0-SNAPSHOT
            │   ├── mavendemo-1.0-SNAPSHOT.jar
            │   ├── mavendemo-1.0-SNAPSHOT.pom
            │   ├── maven-metadata-local.xml
            │   └── _remote.repositories
            └── maven-metadata-local.xml

    3 directories, 5 files


    2、在其它项目中即可通过以下内容对上述项目进行引用
      <dependencies>
        <dependency>
          <groupId>com.ljh.mvn</groupId>
          <artifactId>mavendemo</artifactId>
          <version>.0-SNAPSHOT</version>
        </dependency>
      </dependencies>


    二、其它内容

    1、设置本地仓库的位置
    修改$MAVEN_HOME/setting.xml文件中的内容:
      <!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ${user.home}/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      —>
    默认是~/.m2/repository,可根据实际情况修改

    2、自动生成目录结构
    由于使用maven需要按照特定的目录结构放置文件,而每次手工创建目录及pom.xml太麻烦,因此maven提供了工具用于自动创建相关目录及pom.xml。
    mvn archetype:generate -DgroupId=com.ljh.demo -DartifactId=helloworld -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    [jediael@master test]$ tree  helloworld/
    helloworld/
    ├── pom.xml
    └── src
        ├── main
        │   └── java
        │       └── com
        │           └── ljh
        │               └── demo
        │                   └── App.java
        └── test
            └── java
                └── com
                    └── ljh
                        └── demo
                            └── AppTest.java

    11 directories, 3 files


    三、在eclipse中使用maven

    (一)配置maven

    可以使用eclipse中的默认配置,但一般会指定自己使用的maven。

    1、指定maven安装目录



    2、修改配置文件的路径



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    软件设计师经验分享
    数据库设计基本规范
    UEditor上传文件的默认地址修改
    mongoDB简单介绍及安装
    链表中倒数第k个结点
    一入python深似海--对象的属性
    stl--vector 操作实现
    android5.x加入sim1,sim2标识
    leetCode 27.Remove Element (删除元素) 解题思路和方法
    java8新增特性(一)---Lambda表达式
  • 原文地址:https://www.cnblogs.com/lujinhong2/p/4637199.html
Copyright © 2011-2022 走看看