zoukankan      html  css  js  c++  java
  • Maven– HelloWorld实例

    Maven– HelloWorld实例

    maven安装好后,可以通过HelloWorld项目来体验一下maven是如何构建项目的。Maven项目的核心是pom.xml(就像Ant的build.xml一样),用来构建和发布项目。我们所说的建立maven项目,其实就是建立java项目或web项目,和普通项目不同的是,maven项目的工程目录结构需要按照maven的标准进行建立,并且带有pom.xml文件,这样才能利用maven命令构建和发布工程。

     

    下面利用maven Archetype来创建Helloword项目的框架,方法如下:

    进入cmd窗口,切换到工程所在位置,例如,我将把工程建立在”E:maven-codehelloworld”目录中,如下图所示:

    2013-10-11 11-11-17

    输入

    1
    mvn archetype:generate

    回车,等待一段时间,看到很多的输出项,是mvn在下载archetype运行相关的文件,运行完毕后,首选选择建立框架的类型(标准工程、web工程等),命令行里提示一个默认编号308,表示maven-archetype-quickstart,建立一个简单的maven工程,还可以输入其他编号,选择不同的工程框架。这里默认选择308,回车即可。

    2013-10-11 11-23-35

    选择默认6,回车,命令行提示输入groupId、artifactId、version和package信息,下面我们依次输入,并确认:

    2013-10-11 11-30-55

    输入groupId、artifactId、version、package如下:

    • 输入groupId,项目组id,以rockcms项目为例,com.originsoft.rockcms(项目域名倒序)
    1
    Define value for property 'groupId': : com.originsoft.rockcms
    • 输入artifactId,项目组中的唯一id,为这个Helloworld项目定义为hello-world
    1
    Define value for property 'artifactId': : hello-world
    • 输入version,版本号,这里默认为1.0快照,回车即可
    1
    Define value for property 'version': 1.0-SNAPSHOT: :
    • 输入package,包名,即java项目的包路径,默认为groupid,默认回车即可
    1
    Define value for property 'package': com.originsoft.rockcms: :

    输出:

    1
    2
    3
    4
    5
    Confirm properties configuration:
    groupId: com.originsoft.rockcms
    artifactId: hello-world
    version: 1.0-SNAPSHOT
    package: com.originsoft.rockcms

    输入Y::回车,提示BUILD SUCCESS,表示建立成功,如下图所示:

    2013-10-11 11-34-25

    构建完成后,我们就会在E:maven-codehelloworld下看到hello-world工程(以artifactId命名的工程)。hello-world项目即为典型的maven项目,其规则为,pom.xml在项目的根目录下,src/main/java目录中为项目的主代码,src/test/java目录中为项目的测试代码。

    在编写helloworld之前,我们需要了解一下pom.xml,

     1 <project xmlns="http://maven.apache.org/POM/4.0.0"  
     2       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     4       http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5 
     6       <modelVersion>4.0.0</modelVersion>
     7       <groupId>com.originsoft.rockcms</groupId>
     8       <artifactId>hello-world</artifactId>
     9       <version>1.0-SNAPSHOT</version>
    10       <packaging>jar</packaging>
    11       <name>hello-world</name>
    12       <url>http://maven.apache.org</url>
    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>4.11</version>
    22                   <scope>test</scope>
    23             </dependency>
    24       </dependencies>
    25 </project>
    archetype生成的框架之中,自动带有junit测试依赖。groupId、artifactId、version为我们在之前输入的内容。packaging标签内容为jar,表示当前项目的输出方式,默认为jar。junit默认版本为3.8.1(修改为4.11版本)。pom.xml具体标签不再详细说明,后续也都是用到的进行说明。

    框架会自带一个主代码和测试代码App.java和AppTest.java。执行maven的install命令,则可以完成helloworld项目的构建,编译App类,测试App等,具体方法如下:

    进入cmd窗口,切换到hello-world工程中pom.xml所在目录(例如:E:maven-codehelloworldhello-world),输入mvn clean install命令,mven开始构建helloworld工程。

    2013-10-11 14-58-18

    提示测试成功

    2013-10-11 14-27-01

    提示构建成功

    2013-10-11 14-27-38

    构建过程,包括清空target目录,编译主代码、编译测试代码、执行测试代码、打包等过程(不做详细分析,可以了解一下maven的生命周期)。构建完成后,我们会在D:eclipseworkspace ockcmshelloworl目录中看到target目录,target目录中为构建后的目标结果,包括生成的jar包,以及编译后的class、测试报告(surefile-reports)等,如下图所示:

    2013-10-11 14-36-29

    经过以上方法,我们完成了helloworld的构建,利用maven我们可以很方便完成持续构建,编译、测试一体化进行,不需要分开,便于我们每日构建和打jar包。

    也许你会问,当前工程下没有junit4.11的jar包呀,maven是如何编译并测试成功的呢?其实maven是到我们本地的仓库中找到junit4.11的jar包并应用的。当我们利用archetype生成框架时,maven就已经从远程的中央服务器上下载了junit4.11的jar包,并把它保存到本地仓库中,本地仓库位置“C:Usersapril.m2 epository”(在“C:Usersapril”目录下生成“.m2”本地化创库目录(win7系统的用户目录,april为用户名))。

    我们只需在pom.xml中配置了项目所需要依赖的jar,maven在执行构建命令时(mvn clean install),就会自动到远程中心服务器上下载我们配置的jar,并进行编译,这一点是比较方便的,可以很清晰的看出当前工程都应用了那些jar文件。举个例子,我把pom.xml中junit的版本好改为4.11,AppTest.java改为junit4.11的形式,然后再次执行mvn clean install,命令行中可以看到下载junit4.11的信息。

    1
    2
    3
    4
    5
    6
    7
    8
    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
    </dependency>
    </dependencies>

    构建成功后,我们可以在C:Usersapril.m2 epository下看到junitjunit4.11 目录。

    2013-10-11 15-40-08

  • 相关阅读:
    1020. Tree Traversals
    1001. A+B Format
    centos 各类无线网卡编译
    vim 详细配置 超全
    深夜复习strcpy函数原型竟然暗藏着这么多玄机
    第一篇博客
    strcat函数使用中出现的问题
    strcpy与strncpy工作方式及其区别
    strcpy与面试官
    linux下多线程编程
  • 原文地址:https://www.cnblogs.com/bluepoint2009/p/Maven-HelloWorld.html
Copyright © 2011-2022 走看看