maven 笔记
一、 maven的标准目录结构
src/main/java 核心代码部分
src/main/resources 配置文件部分
src/test/java 测试代码部分
src/test/resources 测试配置文件
src/main/webapp 页面资源 js,css,图片等。
二、maven 常用命令
mvn clean 清除编译出来的文件
mvn complie 将src/main 下核心的文件编译出来
mvn test 将src/test 下的测试文件编译出来 同时也会编译src/main 下的文件
mvn package 将项目打包,同时编译main 下的文件 和test 文件
mvn install 将项目打包到本地仓库 (在这之前也会编译src和test 下的文件--)
mvn deploy 发布项目
三、maven有三套生命周期
1、清理生命周期
2、默认生命周期 compile、test、package、install、deploy(发布) ----- 实际开发中经常用到的生命周期
3、站点生命周期
四、idea 集成 maven需要注意的点
1、idea 下 maven 默认的tomcat 版本为6 ,若使用的jdk 版本为1.8 则会冲突,可以配置maven 插件 修改tomcat的版本
格式如下:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8888</port>
</configuration>
</plugin>
2、maven 里面刚开始建立servlet 时需要导入jsp 和servlet 的jar 坐标,这两个jar可能会与maven 里集成的tomcat的servlet 和jsp ,jar冲突
所以在配置jsp和servlet的坐标时,要配置为 <scope>provided</scope> 编译时:
具体如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
3、测试可能会用到junit jar ,需要配置为<scope>test</scope>
具体如下:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
4、配置jdbc 的jar时需要<scope>runtime</scope>
具体如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
<scope>runtime</scope>
</dependency>
总结:
在 maven-web 工程中测试各各 scop。
测试总结:
默认引入 的 jar 包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )
servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和 tomcat 下 jar 冲突)
jdbc 驱动 jar 包 ---- runtime (测试、运行 有效 )
junit ----- test (测试有效)
依赖范围由强到弱的顺序是:compile>provided>runtime>tes
五、 pom 基本配置
pom.xml 是 Maven 项目的核心配置文件,位于每个工程的根目录,基本配置如下:
<project > :文件的根节点 .
<modelversion > : pom.xml 使用的对象模型版本
<groupId > :项目名称,一般写项目的域名
<artifactId > :模块名称,子项目名或模块名称
<version > :产品的版本号 .
<packaging > :打包类型,一般有 jar、war、pom 等
<name > :项目的显示名,常用于 Maven 生成的文档。
<description > :项目描述,常用于 Maven 生成的文档
<dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译、运行插件等。