目录
四.第一个Maven项目(手工制作)
4.1 Maven工程目录结构
4.2 手工制作Maven项目的步骤
4.2.1 手工制作项目的目录结构或使用插件创建项目的目录结构
4.2.2 在项目的src同层目录下创建pom.xml文件
4.2.3 在cmd中使用Maven项目构建命令
四.第一个Maven项目(IDEA生成)
4.1 idea中配置maven
4.2 idea中创建一个maven项目
4.2.1 手工创建
4.2.2 根据原型创建
4.3 web项目安装Tomcat插件
五.依赖管理
5.1 依赖配置
5.2 依赖传递
5.2.1 依赖传递分类
5.2.2 依赖传递冲突问题
5.3 可选依赖
5.4 排除依赖
5.5 依赖范围
5.5.1 scope标签
5.5.2 依赖范围的传递性(了解):
四.第一个Maven项目(手工制作)
4.1 Maven工程目录结构
4.2 手工制作Maven项目的步骤
4.2.1 手工制作项目的目录结构或使用插件创建项目的目录结构
1.手工制作项目的目录结构
非常简单,就是按照上图手工把项目结构创建出来
2.使用插件创建项目的目录结构
模板:
mvn archetype:generate
-DgroupId=src/main/java和src/test/java目录下的包
-DartifactId=项目名称
-DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot
-DinteractiveMode=false
①创建java工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
②创建web工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
4.2.2 在项目的src同层目录下创建pom.xml文件
pom.xml文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--指定pom的模型版本-->
<modelVersion>4.0.0</modelVersion>
<!-- 打包方式,java工程打包为jar,web工程打包为jar-->
<packaging>war</packaging>
<!--本项目的坐标-->
<!--组织id-->
<groupId>com.itheima</groupId>
<!--项目id,就是你的项目名称-->
<artifactId>web01</artifactId>
<!--版本号 -->
<version>1.0-SNAPSHOT</version>
<!--设置当前工程的所有依赖-->
<dependencies>
<!-- 具体的依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<!-- 构建-->
<build>
<!-- 设置的所有的插件-->
<plugins>
<!-- 具体的插件配置-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
4.2.3 在cmd中使用Maven项目构建命令
可以一次执行多个命令,使用空格分隔。在命令提示符窗口输入以下命令:
1. mvn clean,清理(删除上次编译遗留的结果,即target文件)
2. mvn compile,编译java源程序,会在src的同级目录下生成target目录,里面存放字节码文件
3. mvn package ,打包(打包指令是先编译源程序,在编译测试程序,再执行测试程序,最后对源程序进行打包)
4. mvn install,安装(将源程序打包下载到本地仓库中,此步骤包括上述步骤)
5. mvn test,编译测试源程序Test,也会在src的同级目录下生成target目录,里面存放字节码文件
四.第一个Maven项目(IDEA生成)
4.1 idea中配置maven
首先在File的setting里配置Maven,配置内容包括maven的安装路径和setting.xml的路径
4.2 idea中创建一个maven项目
在new Moudle里找到下图
4.2.1 手工创建
4.2.2 根据原型创建
Java项目的原型结尾是quickstart,web项目的原型结尾是webapp
4.3 web项目安装Tomcat插件
若创建的是web项目,则给web项目安装tomcat7插件
在中央仓库找出插件坐标,复制到pom.xml中,具体代码如下
<!-- 构建-->
<build>
<!-- 设置的所有的插件-->
<plugins>
<!-- 具体的插件配置-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
五.依赖管理
5.1 依赖配置
在setting.xml文件中配置
<!--设置当前工程的所有依赖-->
<dependencies>
<!-- 具体的依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
5.2 依赖传递
5.2.1 依赖传递分类
因为依赖具有传递性,所以延伸出二种依赖,这二种依赖都是相对的
1.直接依赖:在当前项目中通过依赖配置建立的依赖关系。
2.间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。
5.2.2 依赖传递冲突问题
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高。
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的。
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的。
5.3 可选依赖
可选依赖是指对外隐藏当前所依赖的资源--不透明,在pom.xml中配置,如下图
5.4 排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本,在pom.xml中配置,如下图
5.5 依赖范围
5.5.1 scope标签
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围(scope标签放在依赖资源的坐标下边)
<scope>compile</scope> 默认
<scope>test</scope> 测试程序范围内有效(test文件夹范围内)
<scope>provided</scope> 主程序范围内有效(main文件夹内)
<scope>runtime</scope> 是否参与打包
如下图:
5.5.2 依赖范围的传递性(了解):
带有依赖范围的资源在进行传递时,作用范围将受到影响,如下图