Maven操作和框架入门
文章目录
Maven
快捷键
- itar
- itli
- iter
- art + enter 万能
- art + insert 生成set/get toStriong/构造器等
- shift+ shift 搜索文件
Maven
1。Maven介绍
Maven是一个项目管理工具,可以对项目和jar包进行统一个管理,包括:项目的构建(执行项目的生命周期)、项目的生命周期(编译、测试、打包、部署等)、项目的模块依赖关系和jar包的依赖关系
l Jar包管理
l 自动化的项目构建
通俗说maven是一个对项目进行管理和对jar包进行管理的软件
2。Maven相关概念
(1)项目对象模型(POM)
Project Object Model:POM对象模型,其实就是一个xml文件,名字叫做pom.xml,每个Maven工程中都有一个pom.xml文件,定义工程(所依赖的jar包)、(本工程的坐标、打包(jar/war)运行方式)。
Maven通过坐标对项目工程所依赖的jar包统一规范管理
企业使用时,也叫做GAV坐标
Maven的坐标使用如下三个量在 Maven 的仓库中唯一的确定一个jar。
[1] groupid:公司或组织的域名倒序+[当前项目名称]
[2] artifactId:当前项目的模块名称
[3] version:当前模块的版本
(2)生命周期
l 清理、编译、测试、报告 、打包、部署、站点生成。
①清理:删除以前的编译结果,为重新编译做好准备。
②编译:将Java 源程序编译为字节码文件。
③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
④报告:在每一次测试后以标准的格式记录和展示测试结果。
⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。
⑥安装:在 Maven 环境下特指将打包的结果——jar 包安装到本地仓库中或把 war包安装到web容器中。
⑦部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行。
(3)Maven项目标准目录结构
Maven是约定思想的体现,约定>配置>编程,maven之前有一个ant工具(告诉它你的源代码在哪个路径下,然后编译输出到哪个路径)
Maven工程有自己标准的目录结构。
而 Maven 正是因为指定了特定目录保存文件才能够对我们的 Java 工程进行自动化构建(就是自动执行上面的生命周期)。
标准目录结构示例
Project
|-src
| |-main
| | |-java —— 存放项目的.java文件
| | |-resources —— 存放项目资源文件,如spring, hibernate配置文件
|-webapp —— webapp目录是web工程的主目录
|-WEB-INF
|-web.xml
| |-test
| |-java ——存放所有测试.java文件,如JUnit测试类
| |-resources —— 测试资源文件
|-target —— 目标文件输出位置例如.class、.jar、.war文件
|-pom.xml ——maven项目核心配置文件
(4)Maven插件
maven 管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件
(5)Maven仓库。
仓库名称 作用 本地仓库 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。 第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。 中央仓库(远程仓库) 是一种远程仓库,仓库中的jar包由专业团队(maven团队)统一维护。里面存放了全世界大多数流行开源软件jar包 中央仓库的地址:http://mvnrepository.com/tags/maven 私服(远程仓库) 在公司内部架设一台私服,其它公司架设一台仓库,对外公开。
.使用Maven的好处
通过上边介绍传统项目和maven项目在项目构建及依赖管理方面的区别,maven有如下的好处:
1、自动构建(生命周期管理):maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。
2、依赖管理:maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。
3、跨平台:maven命令可在window、linux上使用,命令无差别。
4、提升效率:遵循maven规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。
4.常见Maven命令
(1)clean
clean是maven工程的清理命令,执行 clean会删除整个target目录及内容。
(2)compile
compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
(3)test
test是maven工程的测试命令,会执行src/test/java下的单元测试类。
注意:
1、需要注掉pom.xml中打包跳过测试那一段
2、Maven要求测试类放在src/test/java目录下,且测试方法的
类名以Test结尾、方法名以test开头
(4)package
package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
(5)install
install是maven工程的安装命令,执行install将项目打成jar包或war包发布到本地仓库。
依赖附件
<plugins>
<!-- Compile -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包跳过Test -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--<path>/${project.artifactId}</path>-->
<path>/</path>
<port>80</port>
</configuration>
</plugin>
<!-- maven的源码打包插件 -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-xmls</id>
<phase>process-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
框架认识
什么是框架
框架就是一个半成品项目,对java来说,框架就是别人写好代码的封装,java框架对我们来说就是一堆封装好的jar
框架要解决的问题
框架还解决基础技术的整合问题。优秀的矿机分装了基础的代码,在可靠性,安全性,稳定性,可扩展性,可维护性等表现优异,我们在此基础上开发我们自己的代码完成我们想要实现的功能
什么时候使用框架
企业级应用
怎么使用框架
- 导入框架的jar
- 通过xml配置文件,定义框架的执行细节
- 程序中调用框架API完成功能
了解分层的思想
什么是分层
分层本质就是代码的拆分
分层的好处
实现了低耦合
不同层的职责明确
易于维护,用以定位出现问题的位置
常用的框架
- Model1模式: (jsp+servlet),jsp负责接收请求
- Model2模式:也是MVC设计模式 M(service+dao)View,Controller
- 经典三层
- 表现层 (view+controller) :struts,SpringMVC
- 服务层(service):spring应用于各层,本质是一个对象的容器
- Dao层(dao)Hibernate ,Mybatis
SSH(Struts+Spring+Hibernate)
SSM(SpringMVC+Sping+Mybatis)