Maven学习总结——使用Maven构建多模块项目
Maven的介绍及使用

Maven的介绍及使⽤⼀、Maven简介 Maven 是⼀个项⽬管理⼯具,可以对 Java 项⽬进⾏构建、依赖管理,是⼀个⾃动化构建⼯具。
⾃动化构建⼯具:将原材料(java、js、css、html....)->产品(可发布项⽬) 编译-打包-部署-测试 -> ⾃动构建Maven的作⽤:1、管理jar包1. 增加第三⽅jar包(不需要⾃⼰下载jar包)2. 管理jar包之间的依赖关系(maven⾃动关联下载所有依赖的jar包)2、将项⽬拆分成若⼲个模块:借助于Maven可以将⼀个项⽬拆分成多个⼯程。
(例如爱洋葱)Maven能⼲的事情: 清理:删除编译的结果,为重新编译做准备。
编译:java->class 测试:针对于项⽬中的关键点进⾏测试,也可⽤项⽬中的测试代码去测试开发代码 报告:将测试结果进⾏显⽰ 打包:将项⽬中包含的多个⽂件压缩成⼀个⽂件,⽤于安装或部署(java项⽬打成⼀个jar包,web项⽬打成⼀个war包,⽗⼯程-pom) 安装:将打成的包,放到本地仓库,供其他项⽬使⽤。
部署:将打成的包,放到服务器上,准备运⾏。
Eclipse中的项⽬,要在Tomcat中运⾏,需要部署: a、通过eclipse中add and remove按钮进⾏部署 b、将Web项⽬打成⼀个war包,然后将该war包复制到Tomcat/webapps中即可 通常下载⼀个jar包,先在本地仓库中下载,如果本地仓库中不存在,则再联⽹到中央仓库(镜像)去下载。
约定配置: Maven 提倡使⽤⼀个共同的标准⽬录结构,Maven 使⽤约定优于配置的原则,⼤家尽可能的遵守这样的⽬录结构。
如下所⽰:⼆、Maven POM POM(项⽬对象模型) 是 Maven ⼯程的基本⼯作单元,是⼀个XML⽂件,包含了项⽬的基本信息,⽤于描述项⽬如何构建,声明项⽬依赖,等等。
执⾏任务或⽬标时,Maven 会在当前⽬录中查找 POM。
maven的学习总结

maven的学习1maven 的介绍从字面解释maven是知识渊博、经验丰富的专家或怪才的意思。
深入研究和使用maven,确实让人感到它确实沉淀了Java项目构建领域中的丰富知识和经验,并以一种高度可复用的形式出现在你的面前。
maven的开发者在他们开发网站上指出,maven的目标是要使得项目的构建更加容易,它把编译、打包、测试、发布等开发过程中的不同环节有机的串联了起来,并产生一致的、高质量的项目信息,使得项目成员能够及时地得到反馈。
maven有效地支持了测试优先、持续集成,体现了鼓励沟通,及时反馈的软件开发理念。
如果说Ant的复用是建立在"拷贝--粘贴"的基础上的,那么Maven通过插件的机制实现了项目构建逻辑的真正复用。
2maven的环境搭建首先去官方网站下载之:/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.zip,我选择的是截至目前最新版本maven2.2.1版本2.1设置环境变量:Maven2下载完后,我将其解压到我的计算机的D:\javatools\apache-maven-2.2.1下,目录结构如下:环境变量:我的电脑----属性----高级----环境变量,点击“系统变量”下的新建,输入:变量名MAVEN_HOME; 变量值D:\javatools\apache-maven-2.2.1,在系统变量列表中找到系统变量path,打开之,在变量值中追加”;%MAVEN_HOME%\bin”,至此环境变量设置完毕。
检查一下是否已经完成安装,打开dos窗口,输入mvn –v,如果出现以下信息则表示maven2已经安装成功:2.2本地仓库配置:D:\javatools\apache-maven-2.2.1\conf目录下的setting.xml文件中修改两处:第一处:修改为自己对应的本地仓库目录:第二处:修改为:sky-mobi公司己经有架设一台mavan仓库,供大家使用3Maven生命周期4常用的Maven命令1. 创建Maven的普通java项目:mvn archetype:create -DgroupId=packageName -DartifactId=projectName2. 创建Maven的Web项目:Mvn archetype:create -DgroupId=packageName -DartifactId=webappName –DarchetypeArtifactId = maven-archetype-webapp3. 编译源代码:mvn compile4. 编译测试代码:mvn test-compile5. 运行测试:mvn test6. 产生site:mvn site7. 打包:mvn package8. 清除产生的项目:mvn clean9. 生成eclipse项目:mvn eclipse:eclipse,生成idea项目mvn idea:idea 这年头现在先进了,不用运行也能导入idea工具上了。
IntelliJIDEA构建maven多模块项目

IntelliJIDEA构建maven多模块项⽬我们在开发中因为项⽬之间需要依赖所以会在maven创建多个项⽬配置依赖,这种项⽬结构主要应⽤在⼤型项⽬中,多⼈协作开发1.创建⼀个项⽬ File ->NEW -> Projec
2.选择最下边的Empty Project 然后点击Next
3.输⼊项⽬名称点击Finish
4.点击Modules 点加号选择 New Module
5.选择maven 选中 Create from archetype 复选框选择maven模板点击Next
6.写maven的坐标,“groupId”,“artifactId”,以及“version”,其中groupId是公司域名的反写,⽽artifactId是模块名,version就是该模块所对应的版本号,填写完之后,点击【Next】
7.选择本地的maven,选择maven得配置⽂件路径及本地maven仓库路径,选择完成后点击【Next】
8.填写模块名称,后点击【Finish】
9.创建第⼆个模块(同上边第 4 第 5步骤)
执⾏完 4、5步骤会进⼊如下页⾯会发现 Parent 后边多了⼀个 ...的按钮点开它选择maven test 模块作为⽗类继承过来
10.输⼊⼦模块的名称点击next
11.选择本地的maven,选择maven得配置⽂件路径及本地maven仓库路径,选择完成后点击【Next】
12..填写模块名,后点击【Finish】
13.此时创建好了两个模块 maven test为⽗模块 maven test1为⼦模块想要创建更多的模块按照以上步骤创建即可最后点击OK
14.会展⽰项⽬结构 maven test1依赖maven test。
使用eclipse搭建maven多module项目(构建父子项目)

3.next
4.next
5.finish–>配置pom.xml (主要把多余部分删除,junit只要在父工程的pom配置就可以了) 创建web module
1. 与创建java module的1、2点一样; 2. next
3.把包名定义下~ 4.右键pdd-shop-appweb项目–>properties–>Project Facets–>Convert to faceted form.. 这里选2.4版本的web工程是因为楼主用的是tomcat 6.0啦,按自己实际情况去修改
网络错误503请刷新页面重试持续报错请尝试更换浏览器或网络环境
使用 eclipse搭建 maven多 module项目(构建父子项目)
创建空 maven项目
1. File–>new–>project…
2.next
3.next
4.finish
5.配置pom.xml
创建 module
创建java module 1. 右键ppd-shop项目–>new–>project…
5.配置pom.xml 配置中有两点说明下:1、把jar包自动拷贝到web-inf目录地下,这个搞web开发都懂是为什么了;2、配置子项目依赖
项目依赖
扩展
idea中maven的使用

idea中maven的使用一、什么是mavenMaven是一个项目管理工具,能够帮助开发人员自动化构建、依赖管理和项目报告等任务。
它基于项目对象模型(POM),通过使用XML文件来描述项目的配置信息。
二、为什么要使用maven1. 管理项目依赖在开发过程中,我们通常会引入许多第三方库来实现特定的功能,而这些库之间可能存在依赖关系。
使用maven可以很轻松地管理这些依赖关系,只需在POM文件中定义需要的库,maven会自动下载所需的依赖包。
2. 自动化构建和测试使用maven可以定义一系列的构建和测试任务,通过命令行或者IDE(如IDEA)中的插件来执行这些任务。
这大大简化了构建和测试的过程,提高了开发效率。
3. 项目报告和文档生成maven能够生成各种项目报告和文档,如测试覆盖率报告、代码质量报告、项目文档等。
这些报告和文档可以帮助我们更好地了解项目的情况,并且方便与团队成员进行沟通。
三、maven的核心概念1. 项目对象模型(POM)POM是maven的核心概念,它是一个XML文件,用于描述项目的配置信息。
在POM中可以设置项目的依赖、插件、构建方式等。
2. 依赖管理在POM中可以通过<dependencies>标签定义项目的依赖。
maven会根据这些定义去下载所需的依赖库,并且可以自动解决依赖之间的冲突。
3. 插件插件是maven的扩展机制,通过插件可以执行各种任务,如编译代码、运行测试、打包等。
maven默认包含了一些常用的插件,我们也可以自己编写插件来满足特定需求。
4. 生命周期maven的生命周期定义了一系列的阶段,每个阶段都代表了一个任务。
我们可以通过配置来执行指定的阶段,也可以自定义阶段来执行我们需要的任务。
四、在IDEA中使用maven1. 安装maven插件在IDEA中,默认是没有安装maven插件的,我们需要手动安装。
打开IDEA的设置页面,选择Plugins,搜索Maven插件进行安装。
JAVA学习之maven的使用

JAVA学习之maven的使⽤场景:最近使⽤springboot写⼀些⼩demo,发现到处都要使⽤maven,更离不开其中的pom.xml⽂件,所以这⾥对maven的常规使⽤作出⼀个整理。
⽂章结构:1. 安装配置maven环境2. maven⽬录结构3. HelloMaven4. 常⽤构建命令5. 使⽤archetype插件⾃动建⽴⽬录6. 坐标&仓库7. ⽣命周期&插件的使⽤8. pom.xml常⽤标签介绍9. maven依赖(范围、传递、冲突)10. 聚合&继承正⽂:1. 安装配置maven环境⾸先,在中下载maven组件。
进⼊官⽹后,在左边菜单找到Download选项,点击进⼊Download页⾯。
当然,我们⾸先要保证JDK安装好。
接下来,要在本地配置好maven的系统环境变量,新建⼀个maven_home的变量,然后在系统变量的path后⾯追加这个maven_home;接着,我们测试下maven安装成功没有(注意,⼀般我们都先安装好JDK,因为maven的命令应该是要借助jdk的):如图所⽰,显⽰了maven的版本信息跟jdk的版本信息,当然,我们也可以使⽤echo 查看下系统环境变量:到这⾥,我们对maven的环境配置就完成了。
其实这是第⼀种,我们下载jar包的形式,不过本⼈是使⽤第⼆种,直接安装eclipse(包含maven)的版本即可,⽐如我安装的版本即是⾃带的maven;接下来只需要配置好本地的系统变量即可。
诶,如果我们想要改变maven的版本呢,我们可以在eclipse当中的preferences当中改变:2. maven项⽬的⽬录结构先在这⾥插⼊⼀点个⼈对maven的理解,我们之前每个项⽬都需要有⾃⼰的jar包,但是这么多jar包很多有相同的,⽽这些jar包⼜是基于项⽬存放的,如果我们跨越项⽬这⼀层,统⼀管理jar包呢,这样不就可以节约很多空间和时间。
idea maven实验总结

idea maven实验总结
在本次实验中,我们学习了如何使用idea maven进行项目管理和构建。
通过使用maven,我们可以方便地管理项目依赖、构建和打包项目。
同时,maven还提供了许多插件,可以帮助我们完成各种任务,如测试、发布等。
在实验中,我们首先学习了如何创建一个maven项目。
通过创建一个新的maven项目,我们可以快速创建一个包含基本依赖关系的项目结构。
然后,我们学习了如何添加和管理项目依赖。
通过使用maven 的依赖管理功能,我们可以轻松地添加和删除项目依赖,而不必手动下载和配置依赖项。
接下来,我们学习了如何使用maven进行项目构建和打包。
通过使用maven的命令行工具或在idea中执行maven命令,我们可以快速构建和打包项目。
这可以大大简化我们的项目构建过程,并确保我们的项目能够正确地构建和运行。
最后,在实验中,我们还学习了如何使用maven插件来完成各种任务。
例如,我们学习了如何使用maven-surefire插件来运行单元测试,以及如何使用maven-release插件来发布项目版本。
总的来说,本次实验让我们更好地了解了如何使用idea maven 进行项目管理和构建。
通过使用maven,我们可以方便地管理项目依赖和构建项目,并确保项目能够正确地构建和运行。
- 1 -。
maven 模板

maven 模板Maven 模板。
Maven 是一个强大的项目管理工具,它可以帮助开发人员更轻松地构建、发布和管理项目。
Maven 使用项目对象模型(POM)来描述项目,通过插件和目标来执行各种构建任务。
在实际项目中,我们经常需要创建一些通用的 Maven 模板来加快项目的开发和部署过程。
本文将介绍如何创建和使用 Maven 模板,以及一些常见的 Maven 模板示例。
一、创建 Maven 模板。
1. 创建 Maven 项目。
首先,我们需要创建一个 Maven 项目作为模板。
可以使用 Maven 的 archetype插件来创建一个基本的 Maven 项目,然后将其作为模板进行定制化。
在命令行中执行以下命令来创建一个 Maven 项目:```bash。
mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false。
```。
这将创建一个名为 `my-project` 的 Maven 项目,可以作为我们的模板项目。
2. 定制化模板。
一旦有了基本的Maven 项目,我们可以根据实际需求对其进行定制化。
比如,可以添加一些常用的依赖、配置文件、插件等,以及定义一些常用的构建目标。
定制化完成后,我们就可以将这个项目作为 Maven 模板来使用了。
3. 安装模板到本地仓库。
为了方便后续的使用,我们需要将定制化后的模板安装到本地Maven 仓库中。
在模板项目的根目录下执行以下命令:```bash。
mvn install。
```。
这将把模板项目安装到本地 Maven 仓库中,以便后续可以通过 Maven 的archetype 插件来生成基于这个模板的新项目。
二、使用 Maven 模板。
1. 生成新项目。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Maven学习总结(八)——使用Maven构建多模块项目在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层)、dao(数据库访问层)、service(业务逻辑层)、web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易,今天我们就是使用Maven来构建以上的各个层。
项目结构如下:system-parent|----pom.xml|----system-domain|----pom.xml|----system-dao|----pom.xml|----system-service|----pom.xml|----system-web|----pom.xml一、创建system-parent项目创建system-parent,用来给各个子模块继承。
进入命令行,输入以下命令:mvnarchetype:create -DgroupId=me.gacl -DartifactId=system-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false如下图所示:命令执行完成之后可以看到在当前目录(C:\Documents and Settings\Administrator)生成了system-parent目录,里面有一个src目录和一个pom.xml文件,如下图所示:将src文件夹删除,然后修改pom.xml文件,将<packaging>jar</packaging>修改为<packaging>pom</packaging>,pom表示它是一个被继承的模块,修改后的内容如下:1 <project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"2 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">3 <modelVersion>4.0.0</modelVersion>45 <groupId>me.gacl</groupId>6 <artifactId>system-parent</artifactId>7 <version>1.0-SNAPSHOT</version>8 <packaging>pom</packaging>910 <name>system-parent</name>11 <url></url>1213 <properties>14 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>15 </properties>1617 <dependencies>18 <dependency>19 <groupId>junit</groupId>20 <artifactId>junit</artifactId>21 <version>3.8.1</version>22 <scope>test</scope>23 </dependency>24 </dependencies>25 </project>二、创建sytem-domain模块在命令行进入创建好的system-parent目录,然后执行下列命令:mvnarchetype:create -DgroupId=me.gacl -DartifactId=system-domain -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false如下图所示:命令执行完成之后可以看到在system-parent目录中生成了system-domain,里面包含src 目录和pom.xml文件。
如下图所示:同时,在system-parent目录中的pom.xml文件自动添加了如下内容:<modules><module>system-domain</module></modules>这时,system-parent的pom.xml文件如下:1 <?xml version="1.0" encoding="UTF-8"?>2 <project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/xsd/maven-4.0.0.xsd">3 <modelVersion>4.0.0</modelVersion>45 <groupId>me.gacl</groupId>6 <artifactId>system-parent</artifactId>7 <version>1.0-SNAPSHOT</version>8 <packaging>pom</packaging>910 <name>system-parent</name>11 <url></url>1213 <properties>14 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>15 </properties>1617 <dependencies>18 <dependency>19 <groupId>junit</groupId>20 <artifactId>junit</artifactId>21 <version>3.8.1</version>22 <scope>test</scope>23 </dependency>24 </dependencies>25 <modules>26 <module>system-domain</module>27 </modules>28 </project>修改system-domain目录中的pom.xml文件,把<groupId>me.gacl</groupId>和<version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因为groupId和version会继承system-parent中的groupId和version,packaging设置打包方式为jar 修改过后的pom.xml文件如下:1 <?xml version="1.0"?>2 <project xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd" xmlns="/POM/4.0.0"3 xmlns:xsi="/2001/XMLSchema-instance">4 <modelVersion>4.0.0</modelVersion>5 <parent>6 <groupId>me.gacl</groupId>7 <artifactId>system-parent</artifactId>8 <version>1.0-SNAPSHOT</version>9 </parent>1011 <artifactId>system-domain</artifactId>12 <packaging>jar</packaging>1314 <name>system-domain</name>15 <url></url>16 </project>三、创建sytem-dao模块在命令行进入创建好的system-parent目录,然后执行下列命令:mvnarchetype:create -DgroupId=me.gacl -DartifactId=system-dao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false如下图所示:命令执行完成之后可以看到在system-parent目录中生成了system-dao,里面包含src目录和pom.xml文件。
如下图所示:同时,在system-parent目录中的pom.xml文件自动变成如下内容:1 <?xml version="1.0" encoding="UTF-8"?>2 <project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/xsd/maven-4.0.0.xsd">3 <modelVersion>4.0.0</modelVersion>45 <groupId>me.gacl</groupId>6 <artifactId>system-parent</artifactId>7 <version>1.0-SNAPSHOT</version>8 <packaging>pom</packaging>910 <name>system-parent</name>11 <url></url>1213 <properties>14 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>15 </properties>1617 <dependencies>18 <dependency>19 <groupId>junit</groupId>20 <artifactId>junit</artifactId>21 <version>3.8.1</version>22 <scope>test</scope>23 </dependency>24 </dependencies>25 <modules>26 <module>system-domain</module>27 <module>system-dao</module>28 </modules>29 </project>修改system-dao目录中的pom.xml文件,,把<groupId>me.gacl</groupId>和<version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因为groupId和version会继承system-parent中的groupId和version,packaging设置打包方式为jar,同时添加对system-domain模块的依赖,修改后的内容如下:1 <?xml version="1.0"?>2 <project xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd" xmlns="/POM/4.0.0"3 xmlns:xsi="/2001/XMLSchema-instance">4 <modelVersion>4.0.0</modelVersion>5 <parent>6 <groupId>me.gacl</groupId>7 <artifactId>system-parent</artifactId>8 <version>1.0-SNAPSHOT</version>9 </parent>1011 <artifactId>system-dao</artifactId>12 <packaging>jar</packaging>1314 <name>system-dao</name>15 <url></url>16 <properties>17 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>18 </properties>19 <dependencies>20 <!--system-dao需要使用到system-domain中的类,所以需要添加对system-domain 模块的依赖-->21 <dependency>22 <groupId>me.gacl</groupId>23 <artifactId>system-domain</artifactId>24 <version>${project.version}</version>25 </dependency>26 </dependencies>27 </project>四、创建system-service模块在命令行进入创建好的system-parent目录,然后执行下列命令:mvnarchetype:create -DgroupId=me.gacl -DartifactId=system-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false如下图所示:命令执行完成之后可以看到在system-parent目录中生成了system-service,里面包含src 目录和pom.xml文件。