做网站公司高端,网站的电子地图怎么做,模板ppt,威海公司注册1. 依赖管理概念
Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题#xff0c;使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中#xff0c;避免出现版本冲突和依赖缺失等…1. 依赖管理概念
Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中避免出现版本冲突和依赖缺失等问题。
我们通过定义 POM 文件Maven 能够自动解析项目的依赖关系并通过 Maven 仓库自动下载和管理依赖从而避免了手动下载和管理依赖的繁琐工作和可能引发的版本冲突问题。
总之Maven 的依赖管理是 Maven 软件的一个核心功能之一使得软件包依赖的管理和使用更加智能和方便简化了开发过程中的工作并提高了软件质量和可维护性。
2. Maven工程核心信息配置和解读GAVP
位置pom.xml
!-- 模型版本 --
modelVersion4.0.0/modelVersion
!-- 公司或者组织的唯一标志并且配置时生成的路径也是由此生成 如com.companyname.project-groupmaven会将该项目打成的jar包放本地路径/com/companyname/project-group --
groupIdcom.companyname.project-group/groupId
!-- 项目的唯一ID一个groupId下面可能多个项目就是靠artifactId来区分的 --
artifactIdproject/artifactId
!-- 版本号 --
version1.0.0/version!--打包方式默认jarjar指的是普通的java项目打包方式 项目打成jar包war指的是web项目打包方式项目打成war包pom不会讲项目打包这个项目作为父工程被其他工程聚合或者继承后面会讲解两个概念
--
packagingjar/pom/war/packaging3. Maven工程依赖管理配置
位置pom.xml
依赖管理和依赖添加
!-- 通过编写依赖jar包的gav必要属性引入第三方依赖scope属性是可选的可以指定依赖生效范围依赖信息查询方式1. maven仓库信息官网 https://mvnrepository.com/2. mavensearch插件搜索--
dependencies!-- 引入具体的依赖包 --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version!-- 依赖范围 --scoperuntime/scope/dependency/dependencies依赖版本统一提取和维护
!--声明版本--
properties!--命名随便,内部制定版本号即可--junit.version4.12/junit.version!-- 也可以通过 maven规定的固定的key配置maven的参数如下配置编码格式--project.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncoding
/propertiesdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactId!--引用properties声明版本 --version${junit.version}/version/dependency
/dependencies4. 依赖范围
通过设置坐标的依赖范围(scope)可以设置 对应jar包的作用范围编译环境、测试环境、运行环境
依赖范围描述compile编译依赖范围scope 元素的缺省值。使用此依赖范围的 Maven 依赖对于三种 classpath 均有效即该 Maven 依赖在上述三种 classpath 均会被引入。例如log4j 在编译、测试、运行过程都是必须的。test测试依赖范围。使用此依赖范围的 Maven 依赖只对测试 classpath 有效。例如Junit 依赖只有在测试阶段才需要。provided已提供依赖范围。使用此依赖范围的 Maven 依赖只对编译 classpath 和测试 classpath 有效。例如servlet-api 依赖对于编译、测试阶段而言是需要的但是运行阶段由于外部容器已经提供故不需要 Maven 重复引入该依赖。runtime运行时依赖范围。使用此依赖范围的 Maven 依赖只对测试 classpath、运行 classpath 有效。例如JDBC 驱动实现依赖其在编译时只需 JDK 提供的 JDBC 接口即可只有测试、运行阶段才需要实现了 JDBC 接口的驱动。system系统依赖范围其效果与 provided 的依赖范围一致。其用于添加非 Maven 仓库的本地依赖通过依赖元素 dependency 中的 systemPath 元素指定本地依赖的路径。鉴于使用其会导致项目的可移植性降低一般不推荐使用。import导入依赖范围该依赖范围只能与 dependencyManagement 元素配合使用其功能是将目标 pom.xml 文件中 dependencyManagement 的配置导入合并到当前 pom.xml 的 dependencyManagement 中。
5. Maven工程依赖下载失败错误解决重点
在使用 Maven 构建项目时可能会发生依赖项下载错误的情况主要原因有以下几种
下载依赖时出现网络故障或仓库服务器宕机等原因导致无法连接至 Maven 仓库从而无法下载依赖。依赖项的版本号或配置文件中的版本号错误或者依赖项没有正确定义导致 Maven 下载的依赖项与实际需要的不一致从而引发错误。本地 Maven 仓库或缓存被污染或损坏导致 Maven 无法正确地使用现有的依赖项。
解决方案 检查网络连接和 Maven 仓库服务器状态。 确保依赖项的版本号与项目对应的版本号匹配并检查 POM 文件中的依赖项是否正确。 清除本地 Maven 仓库缓存lastUpdated 文件因为只要存在lastupdated缓存文件刷新也不会重新下载。本地仓库中根据依赖的gav属性依次向下查找文件夹最终删除内部的文件刷新重新下载即可 例如 pom.xml依赖 dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version
/dependency文件 或者可以将清除lastUpdated文件的操作写在一个脚本文件中手动创建文件clearLastUpdated.bat名字任意但是后缀必须是bat将以下内容复制到文件中 cls
ECHO OFF
SET CLEAR_PATHD:
SET CLEAR_DIRD:\maven-repository(本地仓库路径)
color 0a
TITLE ClearLastUpdated For Windows
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * * ClearLastUpdated For Windows * * * *
ECHO. * *
ECHO. * 1 清理*.lastUpdated *
ECHO. * *
ECHO. * 2 查看*.lastUpdated *
ECHO. * *
ECHO. * 3 退 出 *
ECHO. * *
ECHO. * * * * * * * * * * * * * * * * * * * * * * * *
ECHO.
ECHO.请输入选择项目的序号
set /p ID
IF %id%1 GOTO cmd1
IF %id%2 GOTO cmd2
IF %id%3 EXIT
PAUSE
:cmd1
ECHO. 开始清理
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do del %%i
ECHO.OK
PAUSE
GOTO MENU
:cmd2
ECHO. 查看*.lastUpdated文件
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do echo %%i
ECHO.OK
PAUSE
GOTO MENU 6. Maven工程Build构建配置
项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。
默认情况下构建不需要额外配置都有对应的缺省配置。当然了我们也可以在pom.xml定制一些配置来修改默认构建的行为和产物
例如
指定构建打包文件的名称非默认名称制定构建打包时指定包含文件格式和排除文件打包插件版本过低配置更高版本插件
构建配置是在pom.xml / build标签中指定
指定打包命名
!-- 默认的打包名称artifactidverson.打包方式 --
buildfinalName定义打包名称/finalName
/build 指定打包文件
如果在java文件夹中添加java类会自动打包编译到classes文件夹下
但是在java文件夹中添加xml文件默认不会被打包
默认情况下按照maven工程结构放置的文件会默认被编译和打包
除此之外、我们可以使用resources标签指定要打包资源的文件夹要把哪些静态资源打包到 classes根目录下
应用场景mybatis中有时会将用于编写SQL语句的映射文件和mapper接口都写在src/main/java下的某个包中此时映射文件就不会被打包如何解决
build!--设置要打包的资源位置--resourcesresource!--设置资源所在目录--directorysrc/main/java/directoryincludes!--设置包含的资源类型--include**/*.xml/include/includes/resource/resources
/build配置依赖插件
dependencies标签下引入开发需要的jar包我们可以在build/plugins/plugin标签引入插件
常用的插件修改jdk版本、tomcat插件、mybatis分页插件、mybatis逆向工程插件等等
buildplugins!-- java编译插件配jdk的编译版本 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/plugin!-- tomcat插件 --plugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.2/versionconfigurationport8090/portpath//pathuriEncodingUTF-8/uriEncodingservertomcat7/server/configuration/plugin/plugins
/build