【Java学习笔记(四十二)】之Maven,在IDEA中配置Maven项目以及Maven Web项目

本文章由公号【开发小鸽】发布!欢迎关注!!!


老规矩–妹妹镇楼:

一. Maven

(一) 概述

       Maven是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义在生命周期中插件目标的逻辑。

(二) 作用

       构建工程,管理jar包,编译代码,自动运行单元测试,打包,生成报表,部署项目,生成Web站点。

(三) Maven的依赖管理

       传统的web项目的jar包是包含在项目中的,Maven项目的jar包是不包含在项目中的,所有的jar包存储在一个jar包仓库中,项目中只存储jar包的坐标,项目通过jar包的坐标来调用jar包。

(四) Maven的项目构建

       项目的构建指的是项目从编译,测试,运行,打包,安装到部署的整个过程。Maven可以使用一个命令mvn轻松完成。

(五) Maven目录分析

1. bin目录

       可执行文件,其中有构建项目的mvn命令。

2. boot目录

       maven自身运行所需要的类加载器。

3. conf目录

       存储配置文件的。

4. lib目录

       依赖的jar包。

(六) jar包仓库

1. 仓库的种类

       Maven项目的jar包仓库分为本地仓库,中央仓库和远程仓库。本地仓库指的是在自己硬盘上的仓库,中央仓库是互联网上的仓库,远程仓库是所处局域网搭建的仓库(私服),如果私服中没有想要的jar 包,则可以从中央仓库中下载,也可以从本地仓库中上传。工作环境中一般使用的是公司搭建的远程仓库,只要是处于同一个局域网下,就可以访问到远程仓库。

2. 修改本地仓库路径

       在Maven的安装文件夹的conf目录下,有一个settings.xml配置文件,找到”localRepository”关键字,默认在C盘中自动创建,我们可以在下下面一行中修改为自己的磁盘路径。如:

<localRepository>D:\JAVA\apache-maven-3.5.2\Repository</localRepository>

(七) Maven项目的标准目录规范

1. 核心代码

       核心代码应该存放在 src/main/java目录下。

2. 配置文件

       核心代码的配置文件应该放置在src/main/resources目录下。

3. 测试代码

       测试代码应该放置在 src/test/java目录下。

4. 测试配置文件

       测试配置文件应该放置在 src/test/resources目录下。

5. web页面资源

       web的页面资源如js,css,图片等应该放置在 src/main/webapp目录下。

(八) Maven常用命令

1. mvn clean

       在该项目文件夹下执行clean命令,会将该项目已编译的部分删除,有助于项目的移植。

2. mvn compile

       编译项目,将编译后的文件放置在target目录下。

3. mvn test

       编译测试代码,且同时一起编译了核心代码。

4. mvn package

       打包项目,同时编译了核心代码和测试代码,并打包成了war包存储在target目录下。

5. mvn install

       编译了核心代码和测试代码,打包了项目,同时将该war包安装到了本地仓库中。

(九) Maven概念模型

1. 项目对象模型

       POM,可以通过Maven项目文件夹中的pom.xml文件来查看。该文件中包含了项目自身的信息,项目所依赖的jar包信息,项目运行环境信息,如jdk,tomcat信息。

2. 依赖管理模型

       项目运行所依赖的jar包信息。如公司组织的名称groupId,项目名称artifactId,版本号version。

<dependency>

		<groupId>javax.servlet.jsp<groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.0</version>
</dependency>

       依赖管理模型中有三个仓库,每次请求jar包时首先请求本地仓库,如果本地仓库中没有就接着像中央仓库请求,如果没有联网,则向远程仓库请求,如果远程仓库中没有,则从中央仓库下载或者从本地仓库中上传。


二. IDEA中创建Maven项目

(一) 通过骨架创建Maven项目

       1. 新建项目Project,选择Maven项目,右侧是IDEA提供的Maven项目模板,我们可以勾选 “Create from archetype”使用这些模板,当然使用的前提是已联网或者设置IDEA的Maven下的Runner的VM-option为 -Darchtype=Internal。

       2. 设置组名,项目名,版本号,Maven的目录位置,Maven的设置Settings.xml位置,Maven的本地仓库位置。

       3. 等待IDEA加载,最终提示项目生成成功。

       4. 生成Maven项目后,应该有.idea目录和src目录,src目录存放着main和test目录,main目录下存放着java目录和resources目录,resources目录是存放配置文件的,需要我们手动添加,并设置该目录为 resources root,方法点击右键,选择 make Directory as,选择Resources Root。

       5. 项目完全创建完成。


(二) 不通过骨架创建Maven项目

       不勾选 “create from archtype”,直接创建项目即可。

(三) 使用骨架创建Maven的web项目

       选用webapp模板,创建Maven项目,需要我们自己创建src/main/java目录和src/test/java目录,同时设置这些目录为源码路径,方法是点击右键,选择 make Directory as ,选择 Sources Root。还有resousrce配置文件目录需要手动添加。

       注意,创建web项目有很多的坑,比如在加载框架的时候会非常的慢,这可能是因为Maven的镜像源的问题,我们可以设置Maven的镜像源为国内的镜像源,如阿里的Maven镜像,配置方法如下:

       打开 maven 的配置文件( windows 机器一般在 maven 安装目录的 conf/settings.xml ),在<mirrors></mirrors>标签中添加 mirror 子节点:

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

       或者直接在Maven项目的pom.xml配置文件中添加国内镜像的url,添加在项目信息之后:

<url>http://maven.aliyun.com/nexus/content/groups/public</url>

       如果在pom.xml中导入依赖没有自动提示时,同时按下 CTRL + ALT + 空格,等待加载一会就会弹出提示了!!!

       若还是太慢了,可以在创建maven项目时添加参数键值对 archetypeCatalog ,值为internal,代表着加载本地的数据。同时注意选择模板不要选错了模板,要选择archetypes:maven-archetype-webapp,而不是cocoon-22-archetype-webapp!!!


三. Maven Web项目的配置

(一) web.xml的配置

       当我们想在src/main/java下添加一个Servlet文件时,web.xml配置文件自动生成了<servlet>配置信息,但需要我们手动添加Servlet的访问路径,如下所示:

<servlet>
		<servlet-name>MyServlet</servlet-name>
		<servlet-class>com.test.MyServlet</servlet-class>
</servlet>
<servlet>
		<servlet-name>MyServlet</servlet-name>
		<url-pattern>/</url-pattern>
</servlet>

(二) pom.xml

       配置完web.xml后,需要配置项目的依赖信息,我们需要在pom.xml文件中配置依赖jar包的坐标,即设置dependency,如下所示:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
</dependency>

<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.0</version>
</dependency>

       这里能够自动提示的都是已经存储在本地仓库中的jar包,如果我们想要的jar 包本地仓库中没有,那么我们可以在百度中搜索“Maven中央仓库”,将dependency字段直接复制到pom.xml中,它会从网络中自动下载。

(三) 执行Maven指令

       项目配置好了,想要运行项目,就要通过Maven指令来操作。IDEA的右上角有一个Maven,点开可以看到选项有生命周期,即Maven项目的步骤命令,如clean,compile;我们可以直接双击执行这些命令。


(四) 配置运行环境

       为了配置Maven的运行环境,如Tomcat,JDK,我们可以在pom.xml的配置文件中配置插件信息,导入插件,如下所示,导入tomcat插件:
注意,是在<build><plugins></plugins></build>标签中

<!-- tomcat插件控制 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
  <port>
    8000
  </port>
  <path>/</path>
</configuration>
</plugin>

       导入插件之后,就可以在Maven的命令菜单的plugins插件中看到新的插件,同样是双击即可使用。

(五) jar包冲突

       所谓的jar包冲突指的是我们在项目中导入的jar包和Maven中集成的插件中的jar包相冲突,我们可以通过设置项目中的jar包的作用范围为仅编译时生效即可。因为项目中必须要导入相关的包,否则会报错,限制了jar包的作用范围为编译后,项目中的jar包仅在编译时生效,而Maven中集成的插件中的jar包就在项目执行时生效,这样jar包的冲突问题就解决了。设置jar包的作用范围如下所示:

<scope>provided</scope>

其中设置的范围有以下几种:

       compile 对于编译,测试,运行时有效,如 spring-core

       test 对于测试有效,如Jnuit

       provided 对于编译,测试有效, 如 servlet-api

       runtime 对于测试,运行时有效,如JDBC驱动

       system 对于编译,测试有效,如本地仓库之外的类库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值