文章目录

  • 一、简介
  • 二、项目打包
  • 2.1、javac命令打包
  • 2.2、maven打包
  • 三、项目生成


一、简介

Maven是一个项目管理和整合工具。为开发者提供了一套完整的构建生命周期框架,Maven使得大部分的工程配置操作都非常简单并且可复用,在创建报告、检查、构建和测试自动配置时,Maven可以让开发者的工作变得更简单。

java项目包含maven的demo maven项目的基本结构_目录结构

另外Maven默认约定了一套目录结构,在通过Maven创建了项目以后,项目的目录结构就是以这套目录结构作为模板创建的。虽然Maven提供了很多的模板,但是基本的目录结构都是固定的,如下所示:

src
----/main
--------/java			# 项目的源代码所在的目录
--------/resources		# 项目的资源文件所在的目录
--------/webapp			# 如果是web项目,则该目录是web应用源代码所在的目录,比如html文件和web.xml等都在该目录下

----/test
--------/java			# 测试代码所在的目录
--------/resources		# 测试相关的资源文件所在的目录

---/pom.xml 			# maven的核心文件(maven项目必须有)



其中pom.xml主要文件结构如下:

java项目包含maven的demo maven项目的基本结构_maven_02



二、项目打包

2.1、javac命令打包

在介绍使用Maven之前,我们先来看一下如何使用原始的javac命令对项目进行打包,首先需要新建一个Java项目,如下:

java项目包含maven的demo maven项目的基本结构_maven_03

之前在Windows安装JDK及Maven中介绍JDK安装中,就曾使用过javac命令进行编译生成.class文件执行测试过,其中-d .参数是用于指定去生成.class文件的路径(这里表示当前目录),若不指定,生成的 .class 文件和类文件同级。

java项目包含maven的demo maven项目的基本结构_java_04


java项目包含maven的demo maven项目的基本结构_目录结构_05

然后就可以使用jar命令进行打包了,如下:

java项目包含maven的demo maven项目的基本结构_java项目包含maven的demo_06


java项目包含maven的demo maven项目的基本结构_java_07


java项目包含maven的demo maven项目的基本结构_maven_08



不过在执行上述的过程生成的example.jar时报错了,提示我们没有主清单属性,所以这里我们就需要新建一个MENIFEST.MF文件来指定,如下:

java项目包含maven的demo maven项目的基本结构_目录结构_09

然后将刚刚生成的example.jar删除,在重新打包e即可,如下:

java项目包含maven的demo maven项目的基本结构_目录结构_10



2.2、maven打包

在了解完上述打包步骤后,我们来看看Maven是如何进行打包的,首先我们需要安装好Maven,至于Maven安装配置可见Mac安装JDK及Maven和Windows安装JDK及Maven



安装完成后我们将上述项目添加一个pom.xml,将上述项目改为一个Maven项目,或者我们重新新建一个Maven项目

java项目包含maven的demo maven项目的基本结构_maven_11

然后进行打包,一般会先执行mvn clean,然后再执行mvn package,当然这两条命令其实也是可以合起来进行执行的,如下:

java项目包含maven的demo maven项目的基本结构_java项目包含maven的demo_12


java项目包含maven的demo maven项目的基本结构_目录结构_13


java项目包含maven的demo maven项目的基本结构_java项目包含maven的demo_14

上述maven打包后,在项目目录中找到了target目录,直接执行生成的jar包,发现了和javac打包相同的问题,所以maven打包也需要给其指定程序的入口,这里利用到maven-jar-plugin插件,并且还需要给其指定程序的入口,如下:

java项目包含maven的demo maven项目的基本结构_java_15

然后我们再次进行打包执行,其结果如下(在打包时,我们还可以利用右侧提供的maven栏,其和上述使用maven命令效果一致)

java项目包含maven的demo maven项目的基本结构_目录结构_16


java项目包含maven的demo maven项目的基本结构_java项目包含maven的demo_17



三、项目生成

上述生成maven项目时,我们是自己添加了pom.xml文件,并且按照maven约定的目录结构新建了文件目录,我们也可以直接利用maven来创建maven项目,比如使用IDEA在新建,如下:

java项目包含maven的demo maven项目的基本结构_目录结构_18

可以发maven还为我们提供了很多的模板,其实就是使用了maven的命令来生成相关的项目,其命令格式为:

mvn archetype:generate -DgroupId=xxx -DartifactId=xxx -DarchetypeArtifactId=xxx -Dversion=xxx

其中-DarchetypeArtifactId类型,就是我们在IDEA创建项目中看到的,其常用的如下:

mvn archetype:generate -DgroupId=com.rockvine -DartifactId=example -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0-SNAPSHOT

mvn archetype:generate -DgroupId=com.rockvine -DartifactId=example -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0-SNAPSHOT