龙空技术网

Maven web项目创建和Maven依赖仓库介绍

程序猿小董 18

前言:

此刻兄弟们对“怎么把apache导入到eclipse”大约比较关切,你们都需要分析一些“怎么把apache导入到eclipse”的相关内容。那么小编同时在网上搜集了一些有关“怎么把apache导入到eclipse””的相关文章,希望兄弟们能喜欢,朋友们一起来学习一下吧!

前面一篇文章介绍了Maven的简介以及安装配置,本文主要讲解Maven的坐标、依赖和仓库。

创建Maven Web项目

1、打开IDEA软件,点击File-->New-->project,出现下图所示:

2、按上图红色区域依次操作,出现如下图所示,输入项目名称,选择项目路径,点击Next按钮。

3、选择Maven安装路径,Maven配置文件路径,Maven本地库路径,最后点击Finish按钮。

4、创建完成后如下所示,发现没有java目录,右键点击main文件夹-->选择java文件夹,到此Maven web项目已经创建成功了。

约定配置

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能地遵守这样的目录结构,如下所示:

Maven坐标

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构件,声明项目依赖等等。

Maven中引入了坐标的概念,每个构件都有唯一的坐标。maven中构件坐标是通过一些元素定义的,他们是groupId、artifactId、version、packaging、classifier等。

goupId:定义当前构件所属的组,通常与域名反向一一对应。artifactId:项目组中构件的编号。version:当前构件的版本号,每个构件可能会发布多个版本,通过版本号来区分不同版本的构件。package:定义该构件的打包方式,比如我们需要把项目打成jar包,采用 java -jar 去运行这个jar包,那这个值为jar;若当前是一个web项目,需要打成war包部署到tomcat中,那这个值就是war,可选(jar、war、ear、pom、maven-plugin),比较常用的是jar、war、pom。

Maven导入依赖的构件通过坐标信息放入dependencies元素中。dependencies元素中可以包含多个 dependency ,每个 dependency 就表示当前项目需要依赖的一个构件的信息。

dependency中groupId、artifactId、version是定位一个构件必须要提供的信息,所以这几个是必须的,type:依赖的类型,表示所要依赖的构件的类型,对应于被依赖的构件的packaging。大部分情况下,该元素不被声明,默认值为jar,表示被依赖的构件是一个jar包。scope:依赖的范围option:标记依赖是否可选exclusions:用来排除传递性的依赖Maven依赖范围

java中编译代码、运行代码都需要用到classpath变量,classpath用来列出当前项目需要依赖的jar包。maven用到classpath的地方有:编译源码、编译测试代码、运行测试代码、运行项目。

编译、测试、运行需要的classpath对应的值可能是不一样的,这个maven中的scope可以帮我们解决这方面的问题,scope是用来控制被依赖的构件与classpath的关系(编译、打包、运行所用到的classpath),scope有以下几种值:

compile:编译依赖范围,如果没有指定,默认使用该依赖范围,对于编译源码、编译测试代码、测试、运行4种classpath都有效。test:测试依赖范围,使用此依赖范围的maven依赖,只对编译测试、运行测试的classpath有效,在编译主代码、运行项目时无法使用此类依赖。provide:已提供依赖范围。表示项目的运行环境中已经提供了所需要的构件,对于此依赖范围的maven依赖,对于编译源码、编译测试、运行测试中classpath有效,但在运行时无效。runtime:运行时依赖范围,使用此依赖范围的maven依赖,对于编译测试、运行测试和运行项目的classpath有效,但在编译主代码时无效。system:系统依赖范围,该依赖与classpath的关系,和provided依赖范围完全一致。但是,使用system范围的依赖时必须通过systemPath元素显示第指定依赖文件的路径。这种依赖直接依赖于本地路径中的构件,建议谨慎使用。

Maven的依赖调节功能有两个原则:路径最近原则和最先声明原则。

Maven仓库

Maven仓库是基于简单文件系统存储的,主要分为两大类:本地仓库和远程仓库。远程仓库又分为中央仓库,私服和其他公共远程仓库。

当maven根据坐标寻找构件的时候,会首先查看本地仓库,如果本地仓库存在,则直接使用;如果本地不存在,maven会去远程仓库中查找,如果找到了,会将其下载到本地仓库中进行使用,如果本地和远程仓库都没有找到构件,maven会报错,构件只有在本地仓库中存在了,才能够被maven项目使用。

本地仓库

默认情况下,IDEA中maven本地仓库默认地址是 ~/.m2/respository 目录,这个默认我们也可以在~/.m2/settings.xml 文件中进行修改:<localRepository>本地仓库地址</localRepository>。本地安装了Maven,如果使用安装的Maven可以修改Maven安装目录下config目录下的settings.xml文件。

中央仓库

中央仓库是maven社区为我们提供的,是maven内置的一个默认的远程仓库地址,不需要用户去配置。这个地址是Central Repository: (apache.org)。中央仓库还为我们提供了一个检索构件的站点:Maven Central Repository Search。

私服

私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务器,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。

远程仓库的配置

1、在pom.xml中配置。

<repositories>    <!-- 远程仓库地址 -->    <repository>      <id>aliyun-releases</id>      <url>;/url>      <releases>        <enabled>true</enabled>      </releases>      <snapshots>        <enabled>false</enabled>      </snapshots>    </repository>  </repositories></project>

在repositories元素下,可以使用repository子元素声明一个或者多个远程仓库。

repository元素说明:

id:远程仓库的一个标识,中央仓库的id是 central ,所以添加远程仓库的时候,id不要和中央仓库的id重复,会把中央仓库的覆盖掉url:远程仓库地址releases:主要用来配置是否需要从这个远程仓库下载稳定版本构件snapshots:主要用来配置是否需要从这个远程仓库下载快照版本构件

2、通过镜像的方式在settings.xml中配置。

标签: #怎么把apache导入到eclipse #tomcat部署多个web项目 #idea配置maven远程仓库