Maven(二):入门项目

上篇文章讲解了Maven的安装与配置,并且演示了maven如何与Eclipse集成,本篇文章则就开始实战了,以一个简单的例子来说明Maven项目的建立与使用。

一、
编写pom

要说Maven项目的核心是什么,就不得不说POM了。POM(Project
Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等。每个Maven项目下都要有一个POM文件,现在来看一个最简单的POM文件。

<projectxmlns="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.sld</groupId>

<artifactId>testMaven</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

</project>

代码的第一行是XML头,指定了该XML文档的版本和编码方式。下面就是重头戏了--Project元素,这个是所有pom.xml的根元素。我就分别来说说根元素下几个重要的子元素。

第一个子元素modelVersion指定了当前POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0。接下来就是groupId、artifactId和version这三个子元素了,他们共同定义了一个项目基本的坐标,在Maven的世界里,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。其中groupId定义了项目所属的组,这个组往往和项目所在的组织或公司存在关联,例如下例中的com.sld,这就是以我个人名义建立的一个项目。artifactId定义了当前Maven项目在组中唯一的ID。而version显而易见,指定了当前项目的当前版本。最后packaging则是该项目的类型,说明它是web项目、java项目或者ear项目。

上面这个简单的pom文件中没有项目依赖关系,如果我们需要声明的话,使用dependency即可。如下例:通过dependency来声明项目之间的依赖关系。

<dependencies>

    <dependency>

        <groupId>org.hibernate</groupId>

        <artifactId>hibernate-core</artifactId>

        <version>${hibernate.version}</version>

   </dependency>

   <dependency>

       <groupId>org.springframework</groupId>

       <artifactId>spring-webmvc</artifactId>

       <version>${spring.version}</version>

   </dependency>

</dependencies>

读者可以发现,没有任何java代码,我们就可以定义一个Maven项目的pom,这体现了Maven的一大优点,它能让项目对象模型最大程度地与实际代码相独立,这就实现了我们常说的解耦。这在很大程度上避免了Java代码和POM代码的相互影响。比如日后需要升级版本时我们只需要修改POM文件,而不需要修改java代码。


、编写主代码

Maven项目建立完成后,我们就需要来编写java代码了,这里需要注意的是主代码和测试代码最大的区别:项目的主代码会被打包到最终的构件中,而测试代码只在运行测试时用到,不会被打包。默认生成Maven项目时,会出现以下几个文件夹:

其中需要我们操作的就是src/main/java和src/test/java目录,我们遵循maven的约定,在src/main/java目录下创建主代码,Maven会自动搜寻该目录找到主代码;在src/test/java目录下创建测试代码。这样在打包的时候,Maven会自动帮我们打包主代码,而忽略测试代码。

在目录下建包时,需要注意项目中Java类的包都应该基于项目的groupId和artifactId,这样更加清晰,更加符合逻辑,也方便搜索构件或者Java类。如下图所示:

关于主代码我这里就不再写了,编写完代码后,使用Maven进行编译,在项目的根目录下运行命令maven clean compile。clean告诉Maven要清理输出目录target/,compile则告诉Maven要编译项目主代码,编译完成后会在target/classes下。


、编写测试代码

关于测试,我在前面博客中已经有了详细的介绍,这里只贴出pom文件,以供大家了解:

<projectxmlns="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.sld</groupId>

<artifactId>testMaven</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<dependencies>

<dependency>

<groupId>com.cyrusinnovation</groupId>

<artifactId>mockito-groovy-support</artifactId>

<version>1.2</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

</dependencies>

</project>

在这里我们使用的测试工具是Junit和Mockito,所以只需要在pom文件中声明对这两个jar包的依赖即可。

四、
打包和运行

将项目进行编译、测试之后,下一个重要步骤就是打包(package)。在上面pom文件中,我们指定了打包类型jar(Maven默认使用的打包类型也是jar),暂时先简单地执行命令mvnclean
install进行打包。关于Maven的最重要的命令,我们稍后再说。

至此,Maven项目流程我们大致走了一遍,侧重的只是Maven项目而非Java代码本身,介绍了POM、Maven项目结构以及如何编译、测试和打包等。你明白了些吗?

时间: 2024-10-30 07:08:02

Maven(二):入门项目的相关文章

appium + maven +jenkins 基本入门之二 新建maven 的java项目

1: 下载maven : 1.0 :设置maven的环境变量: 1.1: 设置maven本地仓库: 在下载好的maven文件夹找到 apache-maven-3.3.9/conf 文件夹下的settings.xml文件,修改localRepository 为电脑的随便一个文件夹作为本地仓库:如图: 2,开始使用maven 新建java项目了:(第一次需要下载插件,需要比较久的时间) 在终端输入: mvn archetype:generate -DgroupId=com.companyname.t

JAVAWEB开发之Maven的入门详解——Maven的安装以及项目的结构和Maven的使用以及私服的搭建与配置

什么是Maven? 翻译为专家,内行.Maven是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,项目管理和项目信息管理.那么怎么样才算是理想的项目构建呢?理想的项目构建就是必须具备高度自动化,跨平台,可重用的组件,标准化这些特性. 什么是依赖?为什么要进行依赖管理? - 所谓的依赖就是自动下载.进行依赖管理主要是为了统一的对这些依赖进行管理. 都有哪些项目信息? -项目名称描述,开发者信息,开发人员信息,项目的版本号等等. 什么项目构建? - 所谓的项目构建就是对项目进行清理.编译

Spring入门(四):使用Maven管理Spring项目

让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要使用Maven? 之前我们新建的项目,项目所要依赖的第三方jar包都在项目的类路径下(通常为lib目录),如下所示: 使用这种方式,我们无法知道第三方类库的依赖关系,比如导入一个特定的jar包时,可能此jar包还依赖于其他的jar包,其他的jar包又依赖于更多的jar包,这也是我们平常遇到的Clas

maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)

前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WH 一.maven父工程与子模块的拆分与聚合原理 问题描述:将ssh工程拆分为多个模块开发 1.1.拆分原理 创建一个maven project(pom),然后在创建三个子模块(maven moudule),其中三个子模块,分别为 dao.service.web,也就是将三层的内容分别独立为一个项目,进一步将耦合性降低,其中如何将他们

利用Eclipse中的Maven构建Web项目(二)

利用Eclipse中的Maven构建Web项目 1.新建源文件夹,Java Resources鼠标右键,"New-->Source Folder" 2.新建src/main/java   src/main/resources  src/test/java  src/test/resources四个源包 3.双击每个文件夹的Output folder,选择路径 src/main/java和src/main/resources,选择路径target/classes; src/test

Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门

1.环境: Maven :3.1.1 开发工具:Spring Tool Suite 数据库 : Mysql  5.6 2.项目文件结构 文件代码: 2.1 .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.ap

Eclipse+Maven创建webapp项目&lt;二&gt; (转)

Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显示创建maven项目的窗口,此次不勾选Create a simple project,直接next,如图所示: 3.在Filter中搜索webapp,选择如图所示,并next: 4.输入maven项目的基本信息,如下图所示: 5.完成maven项目的创建,生成相应的webapp项目结构,如下所示,此处有部分结

利用Eclipse中的Maven构建Web项目报错(二)

利用Eclipse中的Maven构建Web项目 1.错误描写叙述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1 [INFO] [INFO] ---------------------------------

SpringMVC_入门项目

本项目是SpringMVC的入门项目,用于演示SpringMVC的项目配置.各层结构,功能较简单 一.Eclipse中创建maven项目 二.pom.xml添加依赖 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <dependency>     <groupId>javax.servlet</groupId>     <artifactI