• Maven基础教程


    更多内容请参考官方文档: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、修改配置文件的路径



  • 相关阅读:
    winform+c#之窗体之间的传值 Virus
    ASP.NET 2.0 利用 checkbox获得选中行的行号, 在footer中显示 Virus
    .NET中的winform的listview控件 Virus
    我的书橱
    Expert .NET 2.0 IL Assembler·译者序一 写在一稿完成之即
    Verbal Description of Custom Attribute Value
    AddressOfCallBacks in TLS
    下一阶段Schedule
    2008 Oct MVP OpenDay 第二天 博客园聚会
    2008 Oct MVP OpenDay 第二天 颁奖·讲座·晚会
  • 原文地址:https://www.cnblogs.com/eaglegeek/p/4557800.html
Copyright © 2020-2023  润新知