一。编程生命周期 1。编码 1.1 依赖jar包问题 1.2 代码版本问题 代码更新问题 XXXXXXXXX 1.3 单元测试 2。编译 javac编译 eclipse编译(直接自动编译 整个项目的源代码)
3。项目(project) 源代码聚合在一起 相同的功能在同一个项目 simple project(简易项目) JAVA PROJECT WEB PROJECT
4。发布部署 JAVA PROJECT 打包:jar java -jar jar包运行 WEB PROJECT 打包:war tomcat中运行
5.集成测试 6.运维
二。maven(编程生命周期管理工具) 学习文档 : http://maven.apache.org/users/index.html# 中文文档: https://book.huihoo.com/maven-the-definitive-guide/index.html 教程: http://www.runoob.com/maven/maven-tutorial.html
三。maven特点 maven使用项目对象模型(POM Project Object Model)管理项目 约定优于配置 约定好目标项目的格式 源代码位置 配置文件位置 –src ----main --------java --------resources –pom.xml
四。maven安装 1下载apache-maven-3.53 https://archive.apache.org/dist/maven/maven-3/ 2 解压 将bin目录添加到环境变量 PATH中 3 解压镜像包(1G) 找到maven安装目录/conf/setting.xml 添加 E:\升华课程\linux\maven\repo
四。maven常用命令 1 创建项目 mvn archetype:generate 1271 java项目 1275 web项目 项目标识 开发公司:groupid 域名.公司名 cn.ps 项目名称 artifictid 版本号
2 编译 进入 pom.xml同级的目录 mvn compile
3 打包 进入pom.xml同级的目录 mvn package jar包 war包 使用tomcat6运行 注意只支持javaee5 mvn -Dmaven.tomcat.port=8081 tomcat:run 使用tomcat7运行 支持javaee6 mvn -Dmaven.tomcat.port=8081 org.apache.tomcat.maven:tomcat7-maven-plugin:run 4 其他maven命令 mvn install 安装到maven仓库中 mvn deploy 发布到远程仓库中 mvn eclipse:eclipse 生成eclipse的
五。 运行 jar包 java -cp jar包名 带有main方法的类 war成 mvn tomcat:run mvn jetty:run 不支持 mvn org.mortbay.jetty:jetty-maven-plugin:run
六 项目的坐标 cn.ps 公司名称 MAVEN_WEB 项目名称 0.0.1-SNAPSHOT 版本号 war 打包的类型
关于版本号 ..- 主版本一次+1 发生重大更新 次版本一次+1 发生了模块变化 新增小功能 减少了某些功能 增量版本 发生了修复简单bug 限定版本 SNAPSHOT(开发中)|LATEST(引用最近版本)|RELEASE(发布)
七 maven仓库
》》超级pom执行命令:mvn help:effective-pom
》》私服 (代理) maven中央仓库 https://repo.maven.apache.org/maven2 阿里巴巴私服 http://maven.aliyun.com/mvn/view 著名私服列表 https://mvnrepository.com/repos 》》搜索jar的maven坐标 http://maven.aliyun.com/mvn/search https://mvnrepository.com/ 推荐 https://oss.sonatype.org/#welcome 发布jar包到中央仓库
八 关于maven依赖需要解决问题 1 多项目的版本冲突问题 同一个项目中pom的版本冲突 6.0.2 mysql mysql-connector-java M Y S Q L − V E R I O N < / v e r s i o n > < / d e p e n d e n c y > 跨 项 目 解 决 版 本 冲 突 问 题 》 》 继 承 ( 不 推 荐 ) 继 承 了 父 p o m 的 依 赖 < p a r e n t > < g r o u p I d > c n . p k < / g r o u p I d > < a r t i f a c t I d > M A V E N P A R E N T < / a r t i f a c t I d > < v e r s i o n > 0.0.1 − S N A P S H O T < / v e r s i o n > < / p a r e n t > 父 p o m 定 义 < p r o p e r t i e s > < M Y S Q L V E R S I O N > 6.0.3 < / M Y S Q L V E R S I O N > < / p r o p e r t i e s > 子 项 目 中 引 入 依 赖 < d e p e n d e n c y > < g r o u p I d > m y s q l < / g r o u p I d > < a r t i f a c t I d > m y s q l − c o n n e c t o r − j a v a < / a r t i f a c t I d > < v e r s i o n > {MYSQL-VERION}</version> </dependency> 跨项目解决版本冲突问题 》》继承(不推荐)继承了父pom的依赖 <parent> <groupId>cn.pk</groupId> <artifactId>MAVEN_PARENT</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> 父pom定义 <properties> <MYSQL_VERSION>6.0.3</MYSQL_VERSION> </properties> 子项目中引入依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> MYSQL−VERION</version></dependency>跨项目解决版本冲突问题》》继承(不推荐)继承了父pom的依赖<parent><groupId>cn.pk</groupId><artifactId>MAVENPARENT</artifactId><version>0.0.1−SNAPSHOT</version></parent>父pom定义<properties><MYSQLVERSION>6.0.3</MYSQLVERSION></properties>子项目中引入依赖<dependency><groupId>mysql</groupId><artifactId>mysql−connector−java</artifactId><version>{MYSQL_VERSION}
一旦在父pom中修改了变量名 所有的子pom都需要修改
》》依赖管理 多继承 (不能继承变量和父pom的依赖) 管理版本号 父pom中定义所有的依赖的版本 不会下载jar包 javax.servlet jstl ${JSTL_VERSION}
子pom需要继承 同时不再需要带版本号
javax.servlet jstl2 代码量大(拆分 多模块项目)
项目划分为多模块
alt+shift+v
注意模块项目 编译过程 直接从项目中找 mvn 运行过程 直接从仓库中找 mvn install 自己仓库 mvn deploy 中央仓库