肥宅钓鱼网
当前位置: 首页 钓鱼百科

怎么用maven创建一个web项目(我们应该怎样使用maven来管理java项目)

时间:2023-08-21 作者: 小编 阅读量: 2 栏目名: 钓鱼百科

maven可以帮我们完成上述所有的工作,不用我们再手工去完成。、maven将项目看做一个对象。maven建立了一个仓库体系,来管理这些项目对象。maven的仓库分为本地仓库和远程仓库。如下图,箭头表示依赖关系。这个属性决定我们执行maven的package方法后,项目会被打包成什么文件。②填写quickstart参数按回车,这样就成功的创建了一个maven项目。①修改本地仓库位置maven默认本地仓库的位置是用户.m2目录。

一、maven概述

要用java实现一个后台系统,可能需要涉及很多模块。

web应用服务器、文件服务器、db 等等。 我们要开发这些模块,需要先把他们各自需要依赖的jar包或者项目下载打包好,然后配置到项目的classpath中。

这些应用在运行单元测试pr编译or部署的时候,需要依赖本地的一些配置,比如jdk、web容器等,这样我们将项目分享出去的时候,别人要使用就有一定的配置门槛。

maven可以帮我们完成上述所有的工作,不用我们再手工去完成。、

maven将项目看做一个对象。

maven建立了一个仓库体系,来管理这些项目对象。

maven的仓库分为本地仓库和远程仓库(maven提供的中央仓库)。

我们可以通过maven的命令把自己的项目a放到本地仓库中,如果其他项目b需要依赖项目a,则可以直接在本地仓库中找到。

如果我们的项目依赖一些别人的项目,比如jdbc、mybatis,maven会先根据我们的项目属性在本地仓库中去找,若找不到就去中央仓库中去找。

如下图,箭头表示依赖关系。

maven项目对象的部分基础属性:

① 项目坐标

项目坐标用来定位一个项目在仓库中的位置。当项目b依赖项目a或者jdbc时,maven会根据项目坐标属性去从仓库体系中寻找项目,并自动配置到项目依赖中。

② 打包方式。

这个属性决定我们执行maven的package方法后,项目会被打包成什么文件。

③ 项目依赖列表。

这个属性的值是一个数组,里边有一些其他项目的坐标。

④ 构建插件列表。

这个属性是一个数组,定义项目需要的一些插件,比如源码打包工具、web容器

还有一些属性在后边介绍。

maven项目对象的部分方法:

①mvn compile 编译项目

②mvn package 打包项目

③mvn clean 清除之前编译和打包产生的文件

④mvn install 将项目安装到本地仓库

⑤mvn test 运行测试代码

二、maven的安装

① 访问http://maven.apache.org/download.html 下载最新版本

② 解压到maven工作目录,比如d盘根目录

③ 配置maven环境变量

MAVEN_HOME : D:\apache-maven-3.0.2MAVEN : %MAVEN_HOME%\bin在path 前面 加上 %MAVEN%;

④ 打开cmd敲 mvn -version, 回车。

如看到下面信息表示安装成功:

三、maven项目结构和项目创建方法

 项目结构:

一级目录src为源码目录

二级目录main/java为项目主要代码目录

三级目录就是项目的source目录了

二级目录test/java为项目测试代码目录

三级目录 测试代码source目录

一级目录 编译、打包产生的文件的存放目录

pom.xml文件——项目对象描述文件,前边讲的项目对象的属性和方法配置就在这个文件里边

maven项目创建方法

① 打开cmd,切换到工作目录,运行

首次运行这个命令maven会下载一大堆依赖的文件,这个不用管。

② 填写quickstart参数

按回车,这样就成功的创建了一个maven项目。

我们填写的几个参数:

groupId是帮助项目对象在仓库中定位的

artifactId决定了生成的项目文件夹目录的名称

version是项目版本号

package 是项目source文件下最顶层的包名

③ 项目创建成功

④ 也可以把命令一次敲完

四、maven配置文件settings.xml

在使用maven的时候和仓库相关的一些配置用到了这个文件,所以在这里想讲一讲这个文件。位置:maven\conf\settings.xml。

① 修改本地仓库位置

maven默认本地仓库的位置是 用户.m2 目录 。这个目录在C盘下,和我们的工作区是分开的,不方便管理。另外,如果系统出现啥问题,C盘格式化了,我们的文件就找不回来了。

<localRepository>D:/java/maven_repo</localRepository>

修改这个属性,即可修改本地仓库的位置。

修改了settings.xml后最好在本地仓库里边复制一份,避免maven重装后配置文件丢失

② 配置maven中央仓库位置

由于祖国很墙,有时候访问中央仓库网速会特别慢或者干脆不可用,所有我们要配置一个maven中央仓库在国内的镜像服务器。

我使用的是oschina提供的镜像服务器,项目比较全速度也挺快。

<mirrors><mirror><id>nexus-osc</id><mirrorOf>central</mirrorOf><name>Nexus osc</name><url>http://maven.oschina.net/content/groups/public/</url></mirror></mirrors>

五、maven项目对象配置文件 pom.xml 解析

POM.xml是maven项目比较核心的一个文件,所以这部分的内容可以算是重头了。我还是按照描述一个对象的方式来描述这个文件吧。

① 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"><!-- 指定了当前POM的版本 --><modelVersion>4.0.0</modelVersion></project>

这个是pom.xml的壳子,我姑且把它叫做pom对象吧

② 坐标属性

如果我们认为maven仓库是一个空间,那么坐标属性就是项目在这个空间内的 x、y、z 坐标(刚好决定坐标的标签有三个,这么比喻很合适啊:) )。

<groupId>com.sogou.hi</groupId><!-- 反写的公司网址 项目名 --><artifactId>hi</artifactId><!-- 一般是项目名 模块名如 mcloud.db --><version>0.0.1-SNAPSHOT</version><!-- 大版本号.分支版本号.小版本号snapshot 快照alpha内测beta公测release稳定版GA正式发布版本 -->

任何时候要找到一个项目,只需要有这三个属性就可以了

③ 项目依赖列表属性

概述中说过,这个属性是一个数组,那么在xml文件中的表现形式就是下面这样的:

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version></dependency><dependency><groupId>com.sogou.ml</groupId><artifactId>ml-b</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>

这个依赖列表属性表明,该项目依赖了两个项目 junit和ml-b 。项目依赖还有一些其他的属性,真正用的时候是下面这样的:

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope><!-- scope 属性决定该依赖项目在什么阶段,test表示该项目只在测试代码中依赖 具体见http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope --></dependency><dependency><groupId>com.sogou.ml</groupId><artifactId>ml-b</artifactId><version>0.0.1-SNAPSHOT</version><exclusions> <!-- 排除传递关系的依赖。 例如 ml-c 依赖 ml-b,ml-b依赖 ml-a ,那么我们会发现maven让ml-c同时依赖了a和b,通过这个属性可以排除c对a的依赖 --><exclusion><groupId>com.sogou.ml</groupId><artifactId>ml-a</artifactId></exclusion></exclusions></dependency></dependencies>

④ 构建过程中使用插件的属性

这个配置会让我们的项目在运行 mvn package打包的同时将源码也打包,原本target目录下只会出现 xxx.jar ,现在还会出现一个 xxx-source.jar

<!-- 为项目构建行为提供相应支持 --><build><!-- 插件列表 --><plugins><!-- 打包源码插件 --><plugin><!-- 插件项目坐标 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.4</version><!-- 在什么阶段执行 --><executions><execution><phase>package</phase><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin></plugins></build>

下面这个配置可以让项目打包完成后开始运行web容器,若是web项目就可以在浏览器中访问站点了。

<plugins><plugin><!-- <groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.15.v20140411</version>--><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><executions><!-- 打包成功后即开始运行web容器 --><execution><phase>package</phase><goals><goal> run </goal></goals></execution></executions></plugin></plugins>

⑤ 项目聚合属性

假如我们有好几个项目,需要一起编译打包,挨个打包很麻烦,这个时候我们就可以用聚合属性。

<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.sogou.ml</groupId><artifactId>ml-all</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>ml-all</name><url>http://maven.apache.org</url><modules><module> ../ml-a </module><module> ../ml-b </module><module> ../ml-c </module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

新建一个pom文件,将packaging打包方式修改为pom。

添加modules属性,这个属性也是一个数组,里边有一些项目文件夹的路径,编译打包这个pom项目的时候,会将modules里边的项目都编译打包。

⑥ 父子项目属性

新建一个新的maven项目,pom修改如下

<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.sogou.ml</groupId><artifactId>ml-parent</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>ml-parent</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><junit.version>3.8.1</junit.version></properties><dependencyManagement> <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency></dependencies></dependencyManagement></project>

打包方式同样的修改为pom。添加<dependencyManagement>节点,这个节点下是项目依赖属性。

在此节点下的依赖项目并不会在本项目中生效,但是可以在子项目的依赖中指定依赖,子项目配置如下:

<parent><groupId>com.sogou.ml</groupId><artifactId>ml-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>

这样就可以让子项目依赖在父项目中配置的项目了

六、为eclipse安装maven插件

若我们使用的eclipse中米有maven插件,可以自己下载安装一个。

http://download.csdn.net/detail/cnclenovo/5181671

下载后解压到 eclipse\dropins 目录下即可。

打开Windows-preference 看到maven说明安装成功。

现在我们创建maven项目、编译打包等操作,都可以用eclipse插件来完成了。

    推荐阅读
  • 田螺清理方法(田螺的营养价值有哪些)

    下面内容希望能帮助到你,我们来一起看看吧!田螺清理方法想要清洗田螺的话,就要先把它放入清水中搓洗再用盐水浸泡一两天,并注意在浸泡田螺的过程中定期给它换水。田螺肉含有丰富的维生素A、蛋白质以及钙、铁等元素,是常见的美味食物。田螺肉丰腴细腻,味道鲜美,是典型的高蛋白、低脂肪的天然保健食品。田螺富含铜元素,铜是人体健康不可缺少的微量营养素,对于血液、中枢神经和免疫系统的发育以及功能有重要影响。

  • 雨水节气诗句(关于雨水节气诗句有哪些)

    ——谢枋得《武夷山中》,接下来我们就来聊聊关于雨水节气诗句?——谢枋得《武夷山中》不管烟波与风雨,载将离恨过江南。——郑文宝《柳枝词》相送情无限,沾襟比散丝。——韦应物《赋得暮雨送李胄》俯饮一杯酒,仰聆金玉章。——韦应物《郡斋雨中与诸文士燕集》独自莫凭栏,无限江山,别时容易见时难。——欧阳修《临江仙·柳外轻雷池上雨》随风潜入夜,润物细无声。——晏几道《清平乐·留人不住》清瑟怨遥夜,绕弦风雨哀。

  • 干锅香辣鸡块如何做(干锅香辣鸡块的做法教程)

    下面更多详细答案一起来看看吧!干锅香辣鸡块如何做鸡腿洗净,切块,放料酒,盐,葱段,姜片腌30分钟。捞出葱段和姜片,然后撒上薄薄一层干面粉,抓匀,注意只要一点点面粉即可。炒锅加热,放多些油,能基本淹没鸡块。烧至八成热把鸡块放进去炸,看到表面变色了,就开小火盖上锅盖,焖2—3分钟左右,然后打开锅盖用大火上色后,立即捞出。锅里留少许油,烧至5成热,放入干辣椒段,花椒爆出香味,立即下入鸡块,焖炒匀即可。

  • 5月句子正能量(正能量句子的文案)

    背着昨天追赶明天,会累坏了每一个当下。边走边忘,才能感受到每一个迎面而来的幸福。烦恼不过夜,健忘才幸福。如果能够保持一种安宁、平和的心境,痛苦就会越走越远。生活从来不容易,当你觉得容易的时候,肯定是有人在替你承担属于你的那份不容易。做人的四个准则:生活中不刻意伪装,爱情里不过度依赖,倾听时不着急辩解,说话时不有意冒犯。

  • 成功的人都有的三个特质是什么(往往具有这三个特质)

    里面讲的是在美国有一个叫丽丝的15岁女孩,用了2年时间读完了4年的高中学业,成绩全校第一,并且获得了第六届《纽约时报》的奖学金。在上学期间,丽丝靠洗盘子挣的钱来养活自己,在学习方面她特别努力。但是丽丝一定要自己做到最好。自律在于养成,一旦养成,任何事情都会成为可能。因为没有过硬的证件傍身,时刻担心被炒鱿鱼。似乎已经成为某些人的常态。

  • 发财树烂根怎么办,补救方法有哪些(发财树烂根怎么办,补救方法有哪些呢)

    发财树的腐烂根部应及时修剪后,切掉变黄的叶子,只保留芽眼。发财树在树根腐烂后也会出现在树皮上。烂根的原因盆内积水:发财树的坏根通常是由于盆地土壤中水分的积累造成的。如何防止烂根的发生土壤基质:为了培育一棵健康的发财树,我们需要为它提供优良的土壤基质,必须具有良好的透气性。

  • 四大名著常考习题及答案(四大名著常考题)

    为西天取经立下汗马功劳,后被封为____________。天宫是______的代称;玉帝是____________的化身;孙悟空是______的化身和______的代表。

  • MR2是什么车(mr2车当时多少钱)

    MR2是丰田MR2跑车,配备中置发动机,后轮驱动,两个座椅。丰田MR2诞生于20世纪80年代中期。丰田开发的MR2是一款油耗低、性能相当不错的小型双座跑车,受到了很多车迷的喜爱。MR2系列是日本第一款中置发动机量产的高性能跑车。车名自然成为了这款车型的宣传口号和营销手段。MR2忠于其最初的设计目的就是依靠其轻量化的车身,仅950KG的车重带来了低油耗和易操控性。而且MR2是中置发动机,重心低,重量分配比为40:60,所以转向反应敏锐。

  • 驾照扣分满多少吊销驾照(驾驶证扣分多少会被吊销)

    驾驶车辆的许可是通过驾驶证的核发来实现的。机动车驾驶人应当在十五日内到机动车驾驶证核发地或者违法行为地公安机关交通管理部门参加为期七日的道路交通安全法律、法规和相关知识学习。考试合格的,记分予以清除,发还机动车驾驶证;考试不合格的,继续参加学习和考试。拒不参加学习,也不接受考试的,由公安机关交通管理部门公告其机动车驾驶证停止使用。接受道路驾驶技能考试的,按照本人机动车驾驶证载明的最高准驾车型考试。

  • word基本操作教程文档内容编辑(word基本编辑的方法)

    Word提供了其他样式,但是这三种是标准内容中最常见的样式。再次单击该按钮可停止将样式应用于以后的文本。在上图中,请注意“链接”选择已突出显示。这些颜色选择并不是唯一可用的选择。即使对于绝对的初学者,也必须能够在Word中选择文本。另请注意,单击“选择”时,可以选择与所选文本格式相似的对象或文本。我们将使用Word中的“剪切”功能来完成此操