文化传播公司做网站宣传好吗,那个网站做720度效果图,网络营销方式整理,衡阳微信网站1.学习maven
maven的概念
项目管理工具 #xff0c;对jar进行依赖管理#xff0c;编译#xff0c;打包#xff0c;单元测试#xff0c;安装#xff0c;部署#xff0c;贯穿整个项目
为什么要学maven
要解决的问题#xff1a;
不同的开发工具开发出来的项目目录结构…1.学习maven
maven的概念
项目管理工具 对jar进行依赖管理编译打包单元测试安装部署贯穿整个项目
为什么要学maven
要解决的问题
不同的开发工具开发出来的项目目录结构不一样导致不能相互导。每次从svn服务器检出项目因为 jar包太多了导致速度很慢项目使用的jar包版本每次下载和升级好麻烦得自己寻找jar包的下载地址,找到了不一定能下下载下来版本不一定对。
maven使命
ide解耦统一jar包资源路径版本管理统一项目结构第三方良好的集成
下载地址 http://maven.apache.org
maven仓库
1、本地仓库 : 相当于缓存。本地仓库存储在本地的磁盘当中里面存放的是经常使用的jar包。2、 远程仓库 : 也叫做私服。基本每个公司都会有自己的私服当本地的磁盘中不存在需要的jar包资源则会请求私服进行资源下载。3、 中央仓库 : 远程仓库,由jar专业团队统一维护。
maven的使用
使用maven前需要先配置好jdk
配置环境变量 修改maven的配置文件settings.xml
1.配置本地库的位置 2.配置阿里云镜像
mirror idalimaven/id namealiyun maven/name urlhttp://maven.aliyun.com/nexus/content/groups/public//url mirrorOfcentral/mirrorOf /mirror
3.配置jdk版本
profileidjdk-1.8/idactivationactiveByDefaulttrue/activeByDefaultjdk1.8/jdk/activationpropertiesmaven.compiler.source1.8/maven.compiler.source maven.compiler.target1.8/maven.compiler.target maven.compiler.compilerVersion1.8/maven.compiler.compilerVersion /properties/profileidea创建maven项目
建议不用选骨架可以直接选maven创建项目后自己手动修改pom文件
idea集成maven
一定要全局设计IDEA的Maven配置
什么是gav坐标 根据gav坐标找对应的jar包。
比如mysql驱动包 g:mysql a:mysql-connector-java v8.0.22
改pom文件
POM(project object model)是Maven对一个单一项目的描述
packaging不写的话默认是打jar包对于开发web项目的话要写成war packagingwar/packaging对于web项目的话要在src下的main下建webapp,然后刷新下maven。 写各种jar包依赖
可以去maven中央仓库去搜需要用的jar。网址https://mvnrepository.com/
对于sql映射文件是跟dao接口在一起的情况部署项目的时候默认是不会把sql映射文件打进去的解决如下 buildresourcesresourcedirectorysrc/main/resources/directory/resourceresourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource/resources当然我习惯把sql映射文件单独放到resources下的mapper文件夹的就不用操心这个问题
将之前的ssm项目改成maven项目
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.jf3q/groupIdartifactIdmaven_demo/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion5.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.2.2.RELEASE/version/dependency!--数据库--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.16/version/dependencydependencygroupIdcommons-pool/groupIdartifactIdcommons-pool/artifactIdversion1.6/version/dependencydependencygroupIdcommons-dbcp/groupIdartifactIdcommons-dbcp/artifactIdversion1.4/version/dependency!--mybatis--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.1/version/dependency!--mybatis-spring--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion2.0.3/version/dependency!--分页--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion5.3.1/version/dependency!--jackson--dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.11.1/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-annotations/artifactIdversion2.11.1/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.11.1/version/dependency!--junit--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!--lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.2/version/dependency!--文件上传--dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.2.2/version/dependencydependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.4/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version/dependency!--日志--dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version/dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency!--aop联盟--dependencygroupIdaopalliance/groupIdartifactIdaopalliance/artifactIdversion1.0/version/dependency!-- 这个是spring事务控制的jsr包 --dependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.6.9/version/dependency!-- servlet-api --!--打war包必须用的--dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.0/versionscopeprovided/scope/dependency/dependencies/project
maven的常用命令
mvn compile --只编译main目录中的java文件mvn test 测试运行的是test/java中的代码mvn package 打成 jar/war包放在项目的target文件夹中mvn install 将开发的模块放入本地仓库供其他模块使用放入的位置是通过gav决定mvn clean 删除target目录删除编译文件目录mvn deploy 将项目部署到Tomcat中然后即可运行。
执行mvn命令必须在pom.xml所在目录执行
2.maven聚合工程搭建
概念
多模块开发。多团队协同开发分布式开发
案例
app项目为例 10个人负责开发管理员端 A队 Tomcat是81端口10个人负责开发 开发者端 B队 Tomcat是82端口 其中app-common是公共的打jar包dev和admin都要依赖他要理解maven依赖的传递性。app-dev和app-admin都是打war包用不同端口的Tomcat跑起来。 admin模块截图 dev模块截图
各模块的pom
父级 !--父级根模块必须配置这个--
packagingpom/packaging
!--包含的子模块--
modulesmoduleapp-admin/modulemoduleapp-dev/modulemoduleapp-common/module
/modules
!--所有模块都用到的依赖具有传递性--
dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion5.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.2.2.RELEASE/version/dependency!--数据库--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.16/version/dependencydependencygroupIdcommons-pool/groupIdartifactIdcommons-pool/artifactIdversion1.6/version/dependencydependencygroupIdcommons-dbcp/groupIdartifactIdcommons-dbcp/artifactIdversion1.4/version/dependency!--mybatis--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.1/version/dependency!--mybatis-spring--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion2.0.3/version/dependency!--分页--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion5.3.1/version/dependency!--jackson--dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.11.1/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-annotations/artifactIdversion2.11.1/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.11.1/version/dependency!--文件上传--dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.2.2/version/dependencydependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.4/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version/dependency!--日志--dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version/dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency!--aop联盟--dependencygroupIdaopalliance/groupIdartifactIdaopalliance/artifactIdversion1.0/version/dependency!-- 这个是spring事务控制的jsr包 --dependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.6.9/version/dependency!-- servlet-api --!--打war包必须用的--dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.0/versionscopeprovided/scope/dependency/dependenciescommon:公共模块一般是工具类实体类dao层 packagingjar/packaging
!--本模块独有的依赖--
dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.26/version/dependency/dependenciesbuild!--防止运行项目的时候dao下的sql映射文件丢失--resourcesresourcedirectorysrc/main/resources/directory/resourceresourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource/resources/builddev:开发者模块
packagingwar/packaging!--本模块独有的依赖--dependencies!--公共模块引入进来--dependencygroupIdcom.jf3q/groupIdartifactIdapp-common/artifactIdversion1.0-SNAPSHOT/version/dependency!--剩下独有的依赖省略 如果有的话可以自行添加--/dependenciesadmin:管理员模块
packagingwar/packaging!--本模块独有的依赖--dependencies!--公共模块引入进来--dependencygroupIdcom.jf3q/groupIdartifactIdapp-common/artifactIdversion1.0-SNAPSHOT/version/dependency!--剩下独有的依赖省略 如果有的话可以自行添加--/dependencies作业
1.把app项目改成单模块的maven项目
2.把app项目改成多模块的maven项目