传统开发项目问题没有使用maven管理的项目
①很多模块之间有关系 手工化管理 手工管理化 比较繁琐
②需要很多第三方功能 需要很多jar文件 手工从网络中获取各个jar包
③管理jar文件之间的依赖 你的项目要使用a.jar和b.jar包里的类 必须首先获取b.jar才可以 然后才可以用a.jar
需要改进项目的开发和管理 需要maven
①maven可以管理jar文件
②自动下载jar和他的文档源代码
③管理jar直接依赖 a.jar需b.jar maven自动下载b.jar
④管理自己的jar版本
⑤编译程序 把java编译为class
⑥测试代码是否则正确
⑦帮你打包文件形成jar文件或者war文件
⑧帮你部署项目
构建:
①清理:把之前的项目编译的东西删除掉 为新的编译代码做准备
②编译:maven可以同时把成百上千个文件 编译为class文件
③测试:maven可以同时执行多个测试代码同时测试很多功能
④生成报告:生成测试结果的文件
web生成war文件
maven核心概念:
①pom
②约定的目录结构
③坐标
④依赖的管理
⑤仓库管理
⑥声明周期
⑦插件和目标
⑧继承
⑨聚合
pom.一个文件名称是pom.xml pom即项目对象模型
①maven把一个项目当作一个模型使用 控制maven构建项目过程管理jar依赖
②约定的目录结构:maven项目和位置是规定的
③坐标:是一个唯一的字符串 用来表示资源的
④依赖管理 :管理项目可以使用的jar文件
执行maven构建时候用的工具是插件
通过命令使用maven(了解)
在idea中设置maven 让idea和maven结合使用 idea内置了maven 一般不使用内置的 因为修改maven设置不方便 下载好的放在了
D:\Maven apache-maven-3.8.4 maven-repository(仓库)
使用自己安装的maven需要覆盖idea中的默认设置 让idea指定maven安装位置等信息
配置入口 ①配置当前的工程的设置file-settings-build,Exution deployment
maven Home dicetory maven的安装目录
User Settings File maven的安装目录cont/settings
runn下设置 -DarchetypeCatalog=internal 防止下载模板文件 占内存大 创建项目快
**
Assert.assertEquals(期望值,实际值);
junit测试
ieda创建web项目 file-model-maven org.apache.maven.aecehgntype -webapp
SDK为1.8 version1.8.0.91
约定的目录结构:
src和pom.xml平级
src/main java:主程序Java文件 resource(资源):配置文件 例如 mysql的配置文件
src/test java:测试程序代码的 resource:测试使用的配置文件
依赖: (dependency):maven 管理依赖 使用依赖把jar包导入你的项目中
使用模板创建项目:
maven–archetype -quikestart 普通的Java项目
maven–archetype-webapp web工程
添加servelt依赖和Jsp依赖:
<!-- 添加servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- 添加jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
小技巧:pom.xml右击选择可以刷新文件
<scope></scope> 依赖范围
通过创建的文件夹右击选择 mark Diretoryas设置
导入其他模块通过项目结构
provided提供者
jar包本地仓库没有的话 maven自动下载
mave常用操作:
①maven的属性设置设置maven的常用属性
②自定义全局变量一般是定义依赖的版本号 当你的项目中要使用多个相同的版本号先使用全局变量定义再使用${变量名}
<!-- 自定义全局配置 把标签名字填充到需要使用版本的地方-->
<junit.version>4.11</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
version (版本)
maven编译资源插件
我们的程序需把一些文件放在src/main/java目录中 当执行Java程序的时候 需要使用src/main/java目录中的文件 需要告诉maven 需要把同文件一同拷贝到target/calss目录中时就需在中加入
配置完成之后 点击清理target 然后点击complie(编译)即可拿到文件
<!-- 编译资源插件-->
<build>
<resources>
<resource>
<!-- 所在目录-->
<directory>src/main/java</directory>
<includes><!--包括目录下的.properties,.xml文件都会扫描到-->
<include>***.xml</include>
</includes>
<!-- 选项false不启用过滤器,*.properties已经起到过滤作用了-->
<filtering>false</filtering>
</resource>
</resources>
</build>
D:\Maven\apache-maven-3.8.4\conf\settings.xml 设置配置文件
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>![img](file:/
</mirror>
<!-- java版本 -->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
? <properties>
? <maven.compiler.source>1.8</maven.compiler.source>
? <maven.compiler.target>1.8</maven.compiler.target>
? <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
? </properties>
</profile>
<properties>
<!-- maven构建项目时一些编码的方式-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 编译代码使用的jdk版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<!-- 运行程序使用的jdk版本-->
<maven.compiler.target>1.8</maven.compiler.target>
<!-- 自定义全局配置 把标签名字填充到需要使用版本的地方-->
<junit.version>4.11</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 添加servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- 添加jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- 编译资源插件-->
<!-- 添加插件-->
<build>
<resources>
<resource>
<!-- 所在目录-->
<directory>src/main/java</directory>
<includes><!--包括目录下的.properties,.xml文件都会扫描到-->
<include>***.xml</include>
</includes>
<!-- 选项false不启用过滤器,*.properties已经起到过滤作用了-->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/Java</directory>
<excludes>
<exclude>***.* </include>
</includes>
</resource>
</resources>
</build>
</project>
|