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-code\helloworld”目录中,如下图所示:

输入

1
mvn archetype:generate

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

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

输入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,表示建立成功,如下图所示:

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

在编写helloworld之前,我们需要了解一下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"> <modelVersion>4.0.0</modelVersion>
<groupId>com.originsoft.rockcms</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hello-world</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</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-code\helloworld\hello-world),输入mvn clean install命令,mven开始构建helloworld工程。

提示测试成功

提示构建成功

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

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

也许你会问,当前工程下没有junit4.11的jar包呀,maven是如何编译并测试成功的呢?其实maven是到我们本地的仓库中找到junit4.11的jar包并应用的。当我们利用archetype生成框架时,maven就已经从远程的中央服务器上下载了junit4.11的jar包,并把它保存到本地仓库中,本地仓库位置“C:\Users\april\.m2\repository”(在“C:\Users\april\”目录下生成“.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:\Users\april\.m2\repository下看到junit\junit\4.11 目录。

Maven– HelloWorld实例的更多相关文章

  1. SpringMVC HelloWorld实例开发及部署

    SpringMVC HelloWorld实例开发及部署 2017-01-24 目录 1 Tomcat及Eclipse Tomcat插件安装配置  1.1 Tomcat的安装  1.2 Eclipse ...

  2. SpringMVC之HelloWorld实例

    1.1 Helloworld实例的操作步骤  1. 加入jar包 2. 配置dispatcherServlet 3. 加入Spring配置文件 4. 编写请求处理器 并表示为处理器 5. 编写视图 1 ...

  3. Maven - web 实例

    版权所有,未经授权,禁止转载 章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Ma ...

  4. 利用maven构建一个spring mvc的helloworld实例

    刚开始学习maven和spring mvc,学的云里雾里的 这里提供一个hello world实例,记录自己的学习之路 首先看maven官网的介绍 Apache Maven is a software ...

  5. 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  6. 基于注解配置的Spring MVC 简单的HelloWorld实例应用

    2.1 问题 使用注解的方式重构helloworld应用案例. 2.2 方案 1. @RequestMapping注解应用 @RequestMapping可以用在类定义和方法定义上,它标明这个类或方法 ...

  7. 基于XML配置的Spring MVC 简单的HelloWorld实例应用

    1.1 问题 使用Spring Web MVC构建helloworld Web应用案例. 1.2 方案 解决本案例的方案如下: 1. 创建Web工程,导入Spring Web MVC相关开发包. Sp ...

  8. JMS【三】--ActiveMQ简单的HelloWorld实例

    第一篇博文JMS[一]--JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文JMS[二 ...

  9. ActiveMQ简单的HelloWorld实例

    我们使用ActiveMQ为大家实现一种点对点的消息模型. 开发时候,要将apache-activemq-5.12.0-bin.zip解压缩后里面的activemq-all-5.12.0.jar包加入到 ...

随机推荐

  1. C/C++ 头文件以及库的搜索路径

    关键点: 1. #include <...> 不会搜索当前目录 2. 使用 -I 参数指定的头文件路径仅次于 搜索当前路径. 3. gcc -E -v 可以输出头文件路径搜索过程 C++编 ...

  2. 超全面的JavaWeb笔记day09<Servlet&GenericServlet&HttpServlet&ServletContext>

    1.Servlet概述 2.Servlet接口 3.GenericServlet 4.HttpServlet 5.Servlet细节 6.ServletContext(重要) Servlet概述 生命 ...

  3. Android代码调试报错

    最近出现老代码不能运行的问题 Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowExc ...

  4. centos无法联网解决方法

    1)进入 /etc/sysconfig/network-scripts/ 2)vi 或 vim 打开 ifcfg-eth0(不一定是eth0,这个自己判断了) 3)将 ONBOOT=no 改成 ONB ...

  5. 解决Bootstrap布局注册表单input标签前增加必填项*提示与input框不在同一行问题

    注册表单部分代码如下: <form id="registForm" class="form-horizontal" action="${page ...

  6. org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed

    项目是使用activeMQ 发布订阅的模式,在本地测试正常,但是 放到服务器上出现这个错误: org.apache.activemq.transport.InactivityIOException: ...

  7. 内存监测工具 DDMS --> Heap

    无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方.Android tools中的DDMS就带有一个很不错的内存监测工具Heap(这 ...

  8. linux系统socket通信编程实践

    简单介绍并实现了基于UDP(TCP)的windows(UNIX下流程基本一致)下的服务端和客户端的程序,本文继续探讨关于UDP编程的一些细节. 下图是一个简单的UDP客户/服务器模型: 我在这里也实现 ...

  9. MyBatis——日志

    Logging Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具: SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging ...

  10. 【文智背后的奥秘】系列篇——基于CRF的人名识别

    版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/133 来源:腾云阁 https://www.qclou ...