Maven学习记录

Maven的简介

简介

Maven(专家;内行),Apache组织中的一个比较成功的开源项目,主要服务于java平台的项目构建,依赖管理和项目信息管理。
无论是小型开发的开源类库项目,或是大型的企业级应用;无论是传统的瀑布式开发(先分析需求,再开发),还是流行的敏捷开发(先开发一个雏形,再根据需求改改)。
项目构建:生成文档打包项目

项目构建的工具

Ant构建

Ant(蚂蚁)最早的构建工具,基于IDEA。之前是最流行的java构建工具,不过对xml脚本编写的格式让xml文件特别大。对工程构建过程中控制特别好。

Maven构建

项目对象模型,通过其描述信息来管理项目的构建,报告和文档的软件项目管理工具。它填补了Ant的缺点。Maven首先支持了从网上下载的功能,仍然采用xml作为配置文件的格式。Maven专注的是依赖管理,使用java编写的。

Gradle构建

结合了上面俩个工具的优点,继承了Ant的灵活性和Maven的生命周期,它最后被google作为了Andriod御用的管理工具。它最大的区别是不用xml作为配置文件格式,采用了DSL格式,使得脚本更加简洁。

Maven的四大特性

1.依赖管理系统

在java中,可以用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖。

例子:(依赖可以在maven仓库中搜索)

<!-- 任何基于Maven构建的项目自身也必须定义这项属性,
生成的包可以是jar包,也可以是war包或者jar包。-->
<dependency>
	<groulId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
</dependency>

2.多模块构建

项目复查时,一般会将 Dao Service Controller层分离。将一个项目分解为多个模块已经是很普遍的一种方式。
在Maven中需要定义一个parent POM作为一组module的聚合POM。在该POM中可以使用标签来定义一组模块。parent POM不会有什么实际构建产出。而parent POM中的build配置以及依赖都会自动继承给module。
3.项目结构的一致

Ant时代创建java项目目录比较随意,通过Ant配置指定哪些属于source,哪些属于textSource等。而Maven在设计之初的理念就是 Conversion over configuration。其指定了一套项目目录结构作为标准的java项目结构,解决不同idea带来的文件目录不一致。
4.一致的构建模型和插件机制

引入Jetty服务器

<plugin>
	<groupId>org.mortbay.jetty</groupId>
	<artifactId>maven-jetty-plugin</artifactId>
	<version>6.1.25</version>
	<configuration>
		<scanIntervalSeconds>10<scanIntervalSeconds>
		<contextPath>/text</contextPath>
	</configuration>
</plugin>

安装配置及目录结构

Maven安装配置

Jdk版本1.7及以上版本
环境变量的配置:

安装解压后把Maven的根项目配置到系统的变量环境MAVEN_HOME,将bin目录配置到path变量中。
注意:maven解压存放的目录不要包含中文和空格。

在这里插入图片描述
在这里插入图片描述

检查Maven配置是否成功

打开Dos窗口,执行mvn -v
在这里插入图片描述

Maven项目的目录结构

在这里插入图片描述
在这里插入图片描述

dos窗口执行Maven项目

在这里插入图片描述
编译java文件成功!
在这里插入图片描述
编译成功目录下生成对应的target文件夹
在这里插入图片描述

执行main方法

mvn exec:java -Dexec.mainClass="com.hm.demo.HelloWorld"

在这里插入图片描述

Maven常用命令

在这里插入图片描述

命令参数

1.-D 传入属性参数

例如:mvn package -Dmaven.test.skip=true;
以 -D开头,将maven.test.skip的值设为true,就是告诉maven打包的时候跳过单元测试。

同理,mvn deploy-Dmaven.test.skip=true代表部署项目并跳过单元测试。

2.-P 使用指定的Profile配置

例如项目开发需要有多个环境,一般是开发、测试、预发、正式这四个环境,在pom.xml中配置如下:
<profiles>
	<profile>
		<id>dev</id>
		<properties>
				<env>dev</env>
		</properties>
		<activation>
				<!--不配置的情况下,默认为dev环境-->
				<activeByDefault>true</activeByDefault>
		</activation>
	</profile>
	<profile>
		<id>qa</id>
		<properties>
				<env>qa</env>
		</properties>
	</profile>
	<profile>
		<id>pre</id>
		<properties>
				<env>pre</env>
		</properties>
	</profile>
	<profile>
		<id>prod</id>
		<properties>
				<env>prod</env>
		</properties>
	</profile>
</profiles>
.......
<build>
	<filters>
			<filter>config/${env}.properties/</filter>
	</filters>
	<resources>
			<resource>
					<directory>src/main/resources</directory>
					<filtering>true</filtering>
			</resource>
	</resources>
	......
</build>
  profiles定义了各个环境的变量Id,filters中定义了变量配置文件的地址,
其中地址中的环境变量就是上面的profile中定义的地址,resources中定义哪些目录下的文件会被配置文件中定义的变量替换。

  通过maven可以实现按不同环境进行打包部署。
例如:mvn package -Pdev -Dmaven.test.skip=true
表示打包本地环境,并跳过单元测试。

Idea编辑器集成Maven环境

1.配置本地仓库地址

文件位置:maven—》conf—》settings.xml

在这里插入图片描述

2.配置阿里镜像
在这里插入图片描述
3.idea中集成Maven环境
在这里插入图片描述
在这里插入图片描述

Idea创建Maven项目

1.创建java项目
在这里插入图片描述

填写 GroupId , ArtifactId 之后,一路 Next 直到 Finish。

2.创建web项目
在这里插入图片描述

填写 GroupId , ArtifactId 之后,一路 Next 直到 Finish。

3.创建maven项目之后补全目录

右键项目,找到Mark Directory as。
在这里插入图片描述
也可以在File->Project Structure中更改
在这里插入图片描述
在这里插入图片描述

这里是最终java项目最终目录。
在这里插入图片描述

web项目同理,但多一些步骤:添加tomcat/jetty服务器,以及启动方式

tomcat/jetty 依赖坐标都可以在其自己的官网找到(或者maven仓库)~

在这里插入图片描述
在这里插入图片描述
启动上也与java项目不同。
在这里插入图片描述

补充:并且创建maven项目需点击自动导包。
在这里插入图片描述

Idea中编译打包Maven项目

在这里插入图片描述
在这里插入图片描述

Maven环境下构建多模块项目

在这里插入图片描述
1.创建maven_parent
在这里插入图片描述
2.创建maven_dao模块
在父项目maven_parent基础上,新建项目。

在这里插入图片描述
选择java项目的模板
在这里插入图片描述
3.创建mave_service模块

与创建maven_dao方法步骤一致。

4.创建mave_controller模块

创建maven_controller模块步骤基本与前俩个一致,只需要将第一步选择Maven模板设置为Web项目即可。
(模板类型:maven-archetype-webapp)

最终完成后。
在这里插入图片描述
5.修改模块配置

1.修改jdk版本,与自己的对应。
2.单元测试版本可修改。
3.删除多余的配置。

修改后的配置:(dao\service\controller 都要更改)
在这里插入图片描述
6.设置模块之间的依赖关系
理清模块之间的关系:(在这里)

maven_controller 依赖 maven_service 依赖 maven_dao
maven_controller层,为Servlet层。需要引入Servlet依赖,并且引入Tomcat依赖启动项目。

7.操作步骤


1.maven_dao模块,编写UserDao类。

2.maven_service模块,编写UserService类,调用UserDao,并在该模块的pom.xml文件中映入maven_dao依赖。
(依赖在maven_dao的pom.xml文件中)

3.maven_controller模块,在该模块中搞定pom.xml文件中引入,maven_service依赖、Servlet依赖、tomcat服务器插件。
(maven_service模块的pom.xml文件中、mvn仓库找Servlet依赖、tomcat官网找插件)
编写UserServlet类,继承HttpServlet,调用UserService。

4.添加相关命令启动tomcat、在启动前先将各模块(install)打包一下模块,(install)目的是将模块打包供其他模块使用。子模块、父模块都install。

图解步骤:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Maven的打包操作

添加Profile配置

在项目的pom.xml文件中,配置Profile:
<!-- 添加Profile配置-->
  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
      <activation>
        <!--不配置的情况下,默认打包dev环境-->
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>pro</id>
      <properties>
        <env>pro</env>
      </properties>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <env>test</env>
      </properties>
    </profile>

  </profiles>

在这里插入图片描述

设置资源文件配置

在项目的pom.xml文件中,配置资源文件配置:
(注意放在<build></build>标签内)
 <!-- 设置对应的资源路径-->
    <resources>
      <resource>
        <directory>src/main/resources/${env}</directory>

      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
          <include>**/*.tld</include>
        </includes>
          <filtering>false</filtering>
      </resource>
    </resources>

在这里插入图片描述

执行打包操作

在这里插入图片描述
在这里插入图片描述

Maven依赖的基本概念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值