2. 创建一个简单的Maven项目

☞ 创建项目

  1. 选定一个目录,如E:\workspace\maven,新建的项目将放在这个目录。
  2. 运行CMD,切换到该目录。
  3. 执行mvn archetype:generate
    直到输出"Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 634:"会暂停,直接回车,继续。
    直到输出"Choose org.apache.maven.archetypes:maven-archetype-quickstart version: ... Choose a number: 6:"会暂停,直接回车,继续。
    直到输出"Define value for property 'groupId': :",输入项目的groupId,例如org.sonatype.mavenbook.ch03,回车继续。
    直到输出"Define value for property 'artifactId': :",输入项目的artifactId,例如simple,回车继续。
    直到输出"Define value for property 'version':  1.0-SNAPSHOT: :",输入版本号(默认为1.0-SNAPSHOT),回车继续。
    直到输出"Define value for property 'package':  org.sonatype.mavenbook.ch03: :",输入package(默认为org.sonatype.mavenbook.ch03),回车继续。
    确认输入的参数,没有问题输入Y,回车继续;如果需要修改,输入N回车修改。
    结束。
  4. 查看生成的内容

    |- simple
         |- src
         |    |- main
         |    |    |- java
         |    |         |- org.sonatype.mavenbook.ch03.App.java
         |    |- test
         |        |- java
         |            |- org.sonatype.mavenbook.ch03.AppTest.java
         |- pom.xml


    内容如下:
     1 package org.sonatype.mavenbook.ch03;
     2 
     3 /**
     4  * Hello world!
     5  *
     6  */
     7 public class App 
     8 {
     9     public static void main( String[] args )
    10     {
    11         System.out.println( "Hello World!" );
    12     }
    13 }
    App.java
     1 package org.sonatype.mavenbook.ch03;
     2 
     3 import junit.framework.Test;
     4 import junit.framework.TestCase;
     5 import junit.framework.TestSuite;
     6 
     7 /**
     8  * Unit test for simple App.
     9  */
    10 public class AppTest 
    11     extends TestCase
    12 {
    13     /**
    14      * Create the test case
    15      *
    16      * @param testName name of the test case
    17      */
    18     public AppTest( String testName )
    19     {
    20         super( testName );
    21     }
    22 
    23     /**
    24      * @return the suite of tests being tested
    25      */
    26     public static Test suite()
    27     {
    28         return new TestSuite( AppTest.class );
    29     }
    30 
    31     /**
    32      * Rigourous Test :-)
    33      */
    34     public void testApp()
    35     {
    36         assertTrue( true );
    37     }
    38 }
    AppTest.java
     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4 
     5   <groupId>org.sonatype.mavenbook.ch03</groupId>
     6   <artifactId>simple</artifactId>
     7   <version>1.0-SNAPSHOT</version>
     8   <packaging>jar</packaging>
     9 
    10   <name>simple</name>
    11   <url>http://maven.apache.org</url>
    12 
    13   <properties>
    14     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    15   </properties>
    16 
    17   <dependencies>
    18     <dependency>
    19       <groupId>junit</groupId>
    20       <artifactId>junit</artifactId>
    21       <version>3.8.1</version>
    22       <scope>test</scope>
    23     </dependency>
    24   </dependencies>
    25 </project>
    pom.xml

☞ 安装项目

  1. 切换到simple目录,当前目录下有pom.xml文件。
  2. 执行mvn install
    我在这一步的时候,因为使用的mirror缺少surefire-junit3而中断,后来换了mirror(http://repo1.maven.org/maven2/)才得以继续

执行安装命令之后,simple目录下,发现多了一个target目录:


|- target
     |- classes
     |    |- org.sonatype.mavenbook.ch03.App.class
     |- test-classes
     |    |- org.sonatype.mavenbook.ch03.AppTest.class
     |- simple-1.0-SNAPSHOT.jar
     |- maven-archiver
     |- maven-status
     |- surefire-reports



其实,我们这个项目已经经历过了编译、测试、打包和安装。可以在.m2/repository/org/sonatype/mavenbook/ch03/simple看到安装的内容:


|- simple
     |- 1.0-SNAPSHOT
     |     |- simple-1.0-SNAPSHOT.jar
     |     |- simple-1.0-SNAPSHOT.pom
     |     |- _remote.repositories
     |     |- maven-metadata-local.xml
     |- maven-metadata-local.xml


☞ 运行项目

在simple目录下执行 java -cp target/simple-1.0-SNAPSHOT.jar org.sonatype.mavenbook.ch03.App :

  Hello Word级别的快速入门就到这里了,下一篇开始一些概念学习。

 

posted on 2015-08-28 16:36  一尾金鱼  阅读(910)  评论(0编辑  收藏  举报