3.手动搭建Maven项目

# 0.写在前面

首先回忆一下我们之前都做了什么:

    1.成功在本机安装Maven软件,并配置了环境变量

    2.成功配置了Maven的配置文件(conf/settings.xml文件),保证Maven能够通过我们指定的国内镜像下载jar文件,并将jar文件都保存在我们指定的文件夹当中

       并且在创建Maven项目的时候默认使用JDK 1.8版本进行创建

    3.成功配置了Eclispe下的Maven开发环境,并且保证能够快速创建一个基于Eclispe的Maven项目

    4.能够知道在基于Eclipse的Maven项目中,在什么位置编写Java代码,在什么位置编写测试代码,并能够成功运行这个Maven项目

但是在获取如上成就的同时,我们必须知道:Maven本身是一个平台无关的开源工程,也就是说:

Maven可以为创建在任何开发平台上的Maven项目提供jar文件支持

那么同样也就是说:即使脱离了Eclispe、IDEA这样的开发平台,Maven也是可以直接运行,为项目提供jar文件支持的

那么下面这篇文章,将带领大家一起手动创建并编译、运行一个独立的Maven项目

并经由这个项目,补充一些关于Maven本身的其他知识点

# 1.创建Maven项目的文件夹目录

首先我们来看一个目录结构:

Maven项目:
    |---src
    |----|---main
    |----|----|---java
    |----|----|---resources
    |----|---test
    |----|----|---java
    |----|----|---resources
    |---pom.xml

怎么样?眼熟不?没错!这个就是我们之前在使用Eclipse创建Maven项目的时候,曾经见到过的Maven项目的最简结构

那么我们首先按照这个最简结构,在自己的磁盘上手动创建一个用于保存Maven项目Java文件和测试文件的文件夹结构

并且在这个文件夹中编写代码、添加POM文件,并逐步将这个项目进行编译和运行

1.手动创建Maven的最简目录结构:

# 2.配置Maven工程的pom.xml文件

Maven工程的pom.xml文件是Maven工程的灵魂,一个Maven项目下所有重要的信息和对jar文件的支持都是通过这个文件进行配置的

下面我们来手(shou)动(si)配置这个pom.xml文件

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.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

</project>

上述配置属于Maven项目中pom.xml文件的基本配置方式,其中:

<modelVersion></modelVersion>标签标示的是当前Maven项目使用的描述规范版本号,

这个标签大家不必纠结,目前比较主流的Maven项目使用的描述规范版本号是4.0.0版本

注意:实际上上述配置我们也可以从Maven软件下的lib/maven-artifact-3.6.0.jar这个jar文件中找到相应的pom.xml文件的模板,并能够拷贝其中一些说明和案例

但是这种方式比较繁琐,不容易找到这个模板pom.xml文件,所以我们还是使用笔记中的配置文件内容

2.配置pom.xml文件中的项目坐标:

每一个Maven项目必须在pom.xml文件中配置如下内容,因为Maven就是根据这些配置信息来确定一个项目的具体位置的

所以下面我们将要配置的信息,也称之为一个项目的项目坐标

如何理解项目坐标:在时机生活中,坐标的概念就很普及:同样是在杨国福麻辣烫订的餐,为什么外码小哥能够准确的将你的那一份送到你的手中,而不是别人的手中呢?

对了!就是使用坐标。现实生活中我们使用省、市、区、街道、小区、栋、单元、楼层、门牌号等信息标识我们自己的坐标

所以外卖小哥能够按照这个“坐标”将外卖正确的送到你的手中。

同样的,在我们一台计算机当中,可能同时存在多个Java项目,那么Maven是如何对这些项目进行区分的呢?同样是使用项目坐标

所以说:项目坐标是Maven软件用来识别一个Java项目的唯一标识

就像我吃麻辣烫一定要加墨鱼丸,并且从来不吃香菜一样,Maven软件也是根据项目坐标来区分这个项目需要哪些jar文件,不需要哪些jar文件的

OK!现在应该已经能够理解项目坐标的含义了吧?那么下面我们来介绍一下如何配置一个Maven项目的项目坐标:

首先说明下:项目坐标直接配置在pom.xml文件的<project></project>标签之下

描述一个项目坐标的标准结构如下:

<project>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
    <packaging></packaging>
    <classifier></classifier>
</project>

这些标签的配置信息含义如下:

    <groupId>标签:标识当前Maven项目隶属于的实际项目名称。需要注意的是:Maven项目和实际项目不一定是一对一的关系。

                               比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core,spring-context等。

                               这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。

                               这个概念类似于Java工程中的“父子工程”的概念,而groupId标识的就是当前这个自工程隶属于的父级工程的名称

                               如果这个工程只有自己,不需要依赖于任何实际工程(父级工程),那么这个标签中直接写当前项目的名称即可

    <artifactId>标签:这个标签下标识的就是当前项目的名称。在Maven的概念中,也就是“当前模块”的名称

                               对于<artifactId>标签中的取值,我们建议使用当前项目(模块)的真实名称

    <version>标签:表示当前项目的版本号

    <packaging>标签:表示当前项目的打包方式,除了常见取值"jar"之外,还可以取值"war",表示将当前工程打包为一个war文件

    <classifier>标签:用来表示当前项目在打包生成的时候产生的一些附件文件

怎么样,上面的标签很多吧?刚开始手动配置项目的时候,配到这里,我也是一脸疑(meng)惑(bi)

但是后来我发现:在真正创建一个Maven项目的时候,根本用不上这么多坐标,Maven项目必须的坐标标签只有前3个!

下面我们来看一下如何配置我们当前这个项目的坐标:

将如下标签内容拷贝到之前创建的pom.xml文件的<project></project>标签之下

<!-- 我们这个项目已经是顶级项目了,不需要依赖任何上层的父级项目,所以groupId标签的取值就是当前项目名称 -->
<groupId>MavenTest</groupId>
<!-- 同理,这个项目的artifactId标签的取值也是这个项目名称本身 -->
<artifactId>MavenTest</artifactId>
<!-- 项目的版本号:0.0.1-SNAPSHOT -->
<version>0.0.1-SNAPSHOT</version>

在将上述配置拷贝的pom.xml文件之下后,我们得到这样一个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">

    <!-- 描述当前项目使用的描述规范为Maven 4.0.0规范 -->
    <modelVersion>4.0.0</modelVersion>

    <!-- 配置当前Maven项目的项目坐标 -->
    <!-- 我们这个项目已经是顶级项目了,不需要依赖任何上层的父级项目,所以groupId标签的取值就是当前项目名称 -->
    <groupId>MavenTest</groupId>
    <!-- 同理,这个项目的artifactId标签的取值也是这个项目名称本身 -->
    <artifactId>MavenTest</artifactId>
    <!-- 项目的版本号:0.0.1-SNAPSHOT -->
    <version>0.0.1-SNAPSHOT</version>

</project>

完美!到此为止,我们关于项目坐标的配置就完成了

关于项目版本号的说明:

    Maven项目的<version>标签中使用的版本号,除了0.0.1这个数字版本号之外,还有一个版本类型:SNAPSHOT

    这个单词的意思是快照版本。那么项目的版本类型都分为哪几种呢?

    1.snapshot:快照版本,也就是开发版本,这个版本的项目是不能够使用的,因为正在处于开发阶段,功能不全,错误也很多

                         Eclispe在创建Maven项目的时候默认会使用这个版本

    2.alpha:内部测试版,此版本的程序也不推荐使用,这个版本的程序用在开发人员内部进行测试,寻找并更改bug

    3.beta:外部测试版,面向用户群体发布的测试版本,虽然能够使用,但是仍然不稳定,存在较多bug,不推荐使用

    4.release:发行版,表示官方推荐使用的版本,功能较为全面,并且运行稳定,但是慧慧存在一些bug,可以正常使用

    5.stable:稳定版,在发行版的基础上去除绝大部分bug,优化一些功能,建议使用

    6.current:最新版本,不一定是稳定版本,但是具有最新的功能,如果有对应的发行版或者稳定版,建议使用前两者

    7.eval:评估版本,具有一个月或者固定的使用期限

    此外,还有pre、RC、GA等版本,在此不进行详细描述。

参考博文:https://www.jianshu.com/p/aefe0453d081

3.在pom.xml文件中添加jar文件依赖:

我们学习Maven的目的就是为了让Maven为我们的项目自动添加和管理所需的jar文件

并且在之前的文章中我们已经介绍过如何向pom.xml文件中添加项目所需jar文件的依赖配置,在河里我们不再进行赘述

为了方便当前项目的测试,我们在pom.xml文件中添加junit-4.12版本的jar文件依赖:

<!--
    所有jar文件依赖的声明都放在<dependencies>标签下的子标签<dependency>当中
    每一个依赖单独创建一个<dependency>子标签
-->
<dependencies>
    <!-- 对junit-4.12版本的jar文件依赖声明 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

将上述配置内容加入pom.xml文件之后,我们得到了一个比较全面的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">

    <!-- 描述当前项目使用的描述规范为Maven 4.0.0规范 -->
    <modelVersion>4.0.0</modelVersion>

    <!-- 配置当前Maven项目的项目坐标 -->
    <!-- 我们这个项目已经是顶级项目了,不需要依赖任何上层的父级项目,所以groupId标签的取值就是当前项目名称 -->
    <groupId>MavenTest</groupId>
    <!-- 同理,这个项目的artifactId标签的取值也是这个项目名称本身 -->
    <artifactId>MavenTest</artifactId>
    <!-- 项目的版本号:0.0.1-SNAPSHOT -->
    <version>0.0.1-SNAPSHOT</version>

    <!--
        所有jar文件依赖的声明都放在<dependencies>标签下的子标签<dependency>当中
        每一个依赖单独创建一个<dependency>子标签
    -->
    <dependencies>
        <!-- 对junit-4.12版本的jar文件依赖声明 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

到此为止,整个Maven工程的pom.xml配置文件就已经搞定了,下面让我们来写一些Java代码

# 3.在Maven工程中编写Java代码

Maven工程是严格区分Java原码和测试代码的,这些代码会被分别存放在不同位置下

并且在之后的编译和运行过程中我们也会看到,Maven对Java原码和测试代码的变异和运行也是截然不同的

1.编写Java原码:

Maven项目下所有的Java源代码都是统一存放在src/main/java这个文件夹下的

那么我们在这个文件夹下创建如下Java源文件和代码:

HelloMaven.java:

package com.oracle.test;

public class HelloMaven {

	private String msg = "Hello Maven!";

	public void sayHi() {
		System.out.println(msg);
	}	

}

2.编写测试代码:

Maven项目下的所有测试代码存放在src/test/java这个文件夹下

那么我们在这个文件夹下创建如下的测试类和测试代码:

TestMaven.java:

package com.oracle.test;

import org.junit.Test;

public class TestMaven {

	@Test
	public void test1() {
		HelloMaven hm = new HelloMaven();
		hm.sayHi();
	}	

}

到此为止,我们Maven工程中的Java代码就已经写好了

在上述步骤中,我们需要重点掌握的是:Maven项目中,Java源代码和测试代码的存放路径的位置

# 4.编译和运行Maven项目

Maven项目在创建完成后,需要手动对项目进行编译(有点儿javac的感jio)

并且,因为在测试代码中用到了Java原码中创建的HelloMaven这个类型,所以我们必须按照如下顺序对项目进行编译:

1.首先编译src/main/java文件夹下的Java原码

2.其次编译src/test/java文件夹下的测试代码

只有按照这个顺序进行编译,才能够保证测试代码能够正常运行

1.编译Java源代码:

首先我们需要启用命令控制台,并进入Maven项目的根目录下:

然后通过如下命令对Maven项目中的原码进行编译:

mvn compile

注意:如果是第一次编译Maven项目,那么Maven将会从远程的中央仓库中下载所需的jar文件到本地仓库中

如果我们已经配置过使用镜像进行下载,那么这个下载过程将会快得多

(为了进行演示,我把本地仓库中所有已经下载好的jar文件都删了……)

项目编译成功后将会有如下结果:

首先是在命令控制台中会显示如下结果内容:

其次是在src文件夹下,会出现一个名为target的新文件夹,这个文件夹中负责保存当前已经编译好的所有Java文件的字节码文件:

2.编译并运行测试代码:

Maven工程下的测试代码的编译和运行使用的是同一个命令:

mvn test

也就是说,在运行上述命令的时候,Maven会同时执行如下3个操作:

    1.根据pom.xml配置文件中声明的项目使用的jar文件依赖,去中央仓库将所需的jar文件下载到本地仓库中

    2.编译测试代码,生成其对应的字节码文件

    3.直接执行测试类中的测试方法,打印测试结果

下载jar文件到本地仓库的过程:

编译测试文件并运行测试方法,得到运行结果:

3.Maven项目的清理:

如果需要清空已经编译生成好的Java原码和测试代码的字节码文件,我们可以使用如下命令:

mvn clean

Maven正在清理项目:

清理完成:

在运行这个命令后,Maven会自动删除项目根目录下的target文件夹:

到此为止,我们手动创建、配置并编译、运行一个Maven项目的操作就全部结束了

原文地址:https://www.cnblogs.com/noyitela/p/10386444.html

时间: 2024-10-09 11:30:52

3.手动搭建Maven项目的相关文章

手动搭建maven项目

在自己电脑上下载 maven 地址: 2.解压 我解压到了自己电脑的 F: 盘 3.安装 4.修改成国内镜像: 将maven 的解压包中conf目录下的settings.xml: 复制到:找到 C:\Users\lenovo\.m2(目录结构如下) 打开settings.xml,将一下文字复制进去并保存 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://m

无Maven不项目---使用Eclipse快速搭建Maven项目

自从了解Maven和会使用Maven之后,无论创建什么类型的工程,java,web我都会使用Maven来管理项目,就是因为它提供的依赖功能,说白了就是你想用到什么包就去Maven仓库搜索,并将坐标粘贴在pom.xml中,保存一下, Eclipse就会自动为你下载相关的包,省了导出找jar包的时间,和版本冲突的问题!下面使用Eclipse快速搭建Maven项目 如果你的Eclipse自带Maven那么恭喜你,不用配置了,如果没有的话使用eclipse安装插件的办法,地址:http://m2ecli

MyEclipse下搭建maven项目

由于maven在构建项目方面确实比较出色,现今绝大多数人构建项目都采用maven,而且绝大多数人都采用eclipse作为开发环境,今天我用myeclipse搭建了一个demo,虽然基本上不会采用myeclipse来开发,但是了解一下还是有必要的. 1.至于配置maven环境就不列在此了,比较简单. 2.maven之所以强大,跟他的目录结构有很大关系,因为他的目录结构直接规定好的,大家都按照那样一种目录结构,这对大家的思想统一有很大帮助,并且从侧面也能推动maven的发展,这个仅仅是个人感觉,毕竟

使用idea搭建maven项目

前言---2018-11-24 博主最近呀,也是一直在看书,但是呢有许多小伙伴和博主反应,在eclipse都会搭建maven项目,但是呢到了idea就不会了,于是了博主就起了个早床写一遍博客咯.希望对有需要的朋友有事帮助. 那么就开始啦! 1.首先先下载对应版本的maven放与你想放的逻辑分区(千万要记住你防止的位置哦,后面需要用到) 博主是这样的 2.然后就是打开idea了(这个都会,然而不要和我说你没有下载!) 然后选择配置Configure 选中preferences 然后下面第一行选择你

如何搭建maven项目以及解决一些其中一些小问题

如何搭建maven项目以及解决一些其中一些小问题 有一天听到朋友在聊如何新建聚会工程的事,其中听到了一些不同的说法,对他们的说法我感到好奇,所以带着想法去搭建一下,虽然搭建是很简单的事,但是还是想搞一下.这里不得不说使用eclipse搭建maven项目是真的鸡肋. 一.搭建项目 1.创建maven项目 NEW ------> maven项目 Next groupId和artifactId: GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构.

SpringMVC框架入门配置 IDEA下搭建Maven项目

,初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习使用! 关于SpringMVC的介绍我就不在此赘述了,想必每一个配置Spring的人都已经或多或少了解过一些SpringMVC的基础知识,可能有的人用的myeclipse或者eclipse进行项目的搭建,我会告诉你这里步骤是很相似的,在myeclipse里面需要建立web项目,然后加入Spring

myeclipse2014搭建maven项目

一.环境搭建 1.myeclipse 2014环境 下载.安装.破解请参考:http://blog.my-eclipse.cn/myeclipse-download.html 2.maven环境 1).下载地址:http://101.44.1.5/files/4102000001C6CDE0/mirror.bit.edu.cn/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.zip 2).解压至:E:\server\apach

【Dubbo】整合Dubbo+Zookeeper+SpringMVC(二)---windows下搭建Maven项目

1.新建Maven项目:File->Maven Project 选择maven-webapp,选择过一次后,第二次创建项目不需要重新选择. 2.修改Project Facets a.Java改为1.7  点击右下角Apply b.Dynamic Web Module 取消勾选 点击右下角Apply c.Dynamic Web Module Version 切换为3.0 d.Dynamic Web Module 重新勾选,此时出现Further configuration available...

idea 搭建Maven 项目

idea  出来以后,瞬间感觉eclipse 该淘汰了,无论从用户体验还是对各个工具的支持性上:下面是用idea 配置maven 项目的详细步骤: 首先是下载maven 不多讲,我这是下载的3.5的版本的压缩包:解压后配置环境变量...此处不多讲:应该都会: 我主要讲的是更改本地仓库路径以及idea 搭建spring MVC项目: 1.更改本地仓库路径: 安装maven  成功后再c盘的用户下有一个.m2文件夹,其中的setting.xml;就是我们所要配置的关键了:是maven 的核心配置文件