在Maven中每个项目都相当于是一个对象,对象(项目)和对象(项目)之间是有关系的。 关系包含了:依赖、继承、聚合,实现Maven项目可以更加方便的实现导jar包、拆分项目等效果。...Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库, 项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。...常见命令介绍 Maven的命令非常多,我们只是讲解常用的几个:(所有命令都可以在控制台运行的) ❀ install 本地安装, 包含编译,打包,安装到本地仓库 编译 - javac 打包 - jar...install和package的区别: package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地 maven仓库和远程maven私服仓库...install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地 maven仓库,但没有布署到远程maven私服仓库 我的博客即将同步至腾讯云开发者社区
如果你不能直接将工程导入你的IDE中,你可以使用构建插件生成一个IDE元数据。Maven中包含Eclipse和IDEA的插件;Gradle有各种IDEs的插件。...target/myproject-0.0.1-SNAPSHOT.jar 19.3 使用Maven插件 Spring Boot Maven插件包含一个run目标,可以用来快速编译并运行你的应用。...重启与重载(重新加载) Spring Boot提供的重启技术是通过两个类加载器进行工作的。加载进基类加载器的类不能改变(例如,那些第三方jar包)。那些你正在开发的类加载进重启类加载器中。...可以持续编译变化的文件,你可以只在特定的时间触发重启。...20.3 实时重载 spring-boot-devtools模块包含一个内嵌的实时重载服务器,当资源改变时可以用来触发浏览器重新刷新。
Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情...Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范。 拥有了统一规范,就可以把查找工作交给机器。...再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。 ...Clean生命周期一共包含了三个阶段: pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作...有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了
maven项目模块名称 2.0.0//版本号 jar//当前maven项目打包的方式,默认为jar 以上的配置会获得一个...classifier是不能直接定义的,只能存在附加的构件(插件)时,才能(必须)添加。...比如:现在要导入A.jar包,但A.jar有依赖于B.jar,在maven中就会默认导入B.jar,而不需要手动去导入。...maven的生命周期是不做任何实际工作,实际任务都由插件完成。 maven具有三个独立的生命周期:clean、defeat、site 1、clean生命周期:清理项目,包含三个phase。...8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
自身的运行环境,需要配置MAVEN_HOME 新建系统变量 编辑系统Path变量,新建 测试环境配置结果 # Maven 基础概念 # 仓库 仓库:用于存储资源,包含各种jar包 仓库分类:...私服的作用: 保存具有版权的资源,包含购买或自主研发的jar 中央仓库中的jar都是开源的,不能存储具有版权的资源 一点范围内共享资源,仅对内部开放,不对外共享 # 坐标 什么是坐标? ...项目构建命令 Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分割 mvn compile #编译 mvn clean #清理 mvn test #测试 测试完之后...Maven对项目构建的声明周期划分为3套 clean:清理工作 default:核心工作,例如编译,测试,打包,部署等 site:产生报告,发布站点等 # clean生命周期 pre-clean...包,一个是它本身的,另一个是maven-sources 当然,也可以添加 test-jar 这时安装到本地,有三个jar包,有两个jar包,一个是它本身的,另一个是maven-sources
模块有五六个,发布时最大的问题就是每个包都很大,主要是各个模块的 WEB-INF/lib 下包含大量相同 jar ,因此有必要将公共包摘出来放到 Tomcat 的共享目录下。...然而,在捣鼓了两天后,我对 Tomcat 的多应用部署时共享公共包的能力产生了怀疑。...理论上,同一个 Tomcat 下部署多个应用时,可以将所有共享 jar 放在 shared/lib 目录下,然后配置 shared.loader 就可以了。...总的来说,编译源码流程比较简单,但最开始因为随便选择了最新版本,导致无法启动,这可能是官网版本发布时的缺陷吧,反正换个版本就没有问题。...【我是将纯第三方 jar ,无相关依赖的】 为什么只 WEB-INF/lib 下只保留某个应用自身的 jar 而且包含 SpringBoot 的 starter 依赖,还是报类异常?
构建过程包含的主要环节有: 清理:删除上一次构建的结果,从而准备下一次的构建。...编译:Java源程序编译成 *. class字节码文件。 测试:运行提前准备好的测试程序。 报告:针对刚才测试的结果生成一个全面的信息。...---- 三、Maven的功能与特性 遵循统一的项目设置 - 在几秒钟内启动一个新项目或模块 在所有项目中共享 - 新开发人员进入项目无须启动时间 依赖管理,包括自动更新、依赖关系闭包...Maven 能够发布单个输出,例如 JAR、包含其他依赖项和文档的存档,或作为源代码分发。 依赖关系管理:Maven鼓励使用JAR和其他依赖关系的中央存储库。...Maven 带有一种机制,项目的客户端可以使用该机制从中央 JAR 存储库下载构建项目所需的任何 JAR,就像 Perl 的 CPAN 一样。
2.Maven可以干啥: 添加第三方jar包 jar包之间的依赖关系:Maven 可以替我们自动的将当前 jar 包所依赖的其他所有 jar 包全部导入进来 获取第三方jar包:Maven 提供了一个完全统一规范的...Maven 有三套相互独立的生命周期,分别是: Clean Lifecycle 在进行真正的构建之前进行一些清理工作 Default Lifecycle 构建的核心部分,编译,测试,打包,安装,部署等等...Clean 生命周期 Clean 生命周期一共包含了三个阶段: pre-clean:执行一些需要在 clean 之前完成的工作 clean:移除所有上一次构建生成的文件 post-clean:执行一些需要在...deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享 5.6.5....而使用了聚合之后就可以批量进行 Maven 工程的安装、清理工作。 如何配置聚合?在总的聚合工程中使用 modules/module 标签组合,指定模块工程的相对路径即可 <!
模块有五六个,发布时最大的问题就是每个包都很大,主要是各个模块的 WEB-INF/lib 下包含大量相同 jar ,因此有必要将公共包摘出来放到 Tomcat 的共享目录下。...然而,在捣鼓了两天后,我对 Tomcat 的多应用部署时共享公共包的能力产生了怀疑。...理论上,同一个 Tomcat 下部署多个应用时,可以将所有共享 jar 放在 shared/lib 目录下,然后配置 shared.loader 就可以了。...总的来说,编译源码流程比较简单,但最开始因为随便选择了最新版本,导致无法启动,这可能是官网版本发布时的缺陷吧,反正换个版本就没有问题。...【我是将纯第三方 jar ,无相关依赖的】 为什么只 WEB-INF/lib 下只保留某个应用自身的 jar 而且包含 SpringBoot 的 starter 依赖,还是报类异常? ---- ?
借助于maven就可以将一个项目拆分成多个工程 ② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中 同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。...③ jar包需要的时候每次都要自己准备好或到官网下载 借助于maven我们可以使用统一的规范方式下载jar包,规范 ④ jar包版本不一致的风险 不同的项目在使用jar包的时候,有可能会导致各个项目的jar...一旦本地仓库有了依赖的maven工程的jar包后,你再到HelloFriend项目中使用 mvn compile命令的时候,可以成功编译 ③ 依赖范围 ?...**5、system,**类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。...**Clean生命周期一共包含了三个阶段: pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作
借助于maven就可以将一个项目拆分成多个工程 ② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中 同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。...③ jar包需要的时候每次都要自己准备好或到官网下载 借助于maven我们可以使用统一的规范方式下载jar包,规范 ④ jar包版本不一致的风险 不同的项目在使用jar包的时候,有可能会导致各个项目的jar...一旦本地仓库有了依赖的maven工程的jar包后,你再到HelloFriend项目中使用 mvn compile命令的时候,可以成功编译 ③ 依赖范围 ?...4、test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 5、system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。...Clean生命周期一共包含了三个阶段: pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作
1 Maven的生命周期 Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。...1.1 clean生命周期 清理项目,包含三个phase: pre-clean:执行清理前需要完成的工作 clean:清理上一次构建生成的文件 post-clean:执行清理后需要完成的工作 如果想执行...test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。 Package:把已编译的代码打包成可发布的格式,比如jar。...install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。...Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。 default生命周期一共有23个阶段,这里只是列出了几个比较重要的阶段。
当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。...test,使用已编译的测试代码,测试已编译的源代码。 package,已发布的格式,如jar,将已编译的源代码打包。 integration-test,在集成测试可以运行的环境中处理和发布包。 ...下次运行Maven的时候,它将从Ibiblio存储库中得到这个依赖项,并且将此依赖项添加到项目构建路径中。Maven中最大的麻烦之处就是不能从Maven存储库中获取Sun的jar文件。...如何处理那些麻烦的Sun的jar包和那些需要但却不能在远程存储库中找到的jar包呢?...11、插件和报表 Maven2.0 有大量的插件可以使用。不幸的是,由于Maven的重写,Maven1.0的插件不能在2.0中使用。尽管如此,还是存在一些可以使用的Maven2.0 的插件。
借助于maven就可以将一个项目拆分成多个工程 ② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中 同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。...③ jar包需要的时候每次都要自己准备好或到官网下载 借助于maven我们可以使用统一的规范方式下载jar包,规范 ④ jar包版本不一致的风险 不同的项目在使用jar包的时候,有可能会导致各个项目的jar...4、test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 5、system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。...Clean生命周期一共包含了三个阶段: 1、pre-clean 执行一些需要在clean之前完成的工作 2、clean 移除所有上一次构建生成的文件 3、post-clean...注意:非compile范围的依赖是不能传递的。 ② 依赖版本的原则: 1、路径最短者优先原则 ?
借助于maven就可以将一个项目拆分成多个工程 ② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中 同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。...借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。...③ jar包需要的时候每次都要自己准备好或到官网下载 借助于maven我们可以使用统一的规范方式下载jar包,规范 ④ jar包版本不一致的风险 不同的项目在使用jar包的时候,有可能会导致各个项目的jar...4、test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 5、system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。...Clean生命周期一共包含了三个阶段: 1、pre-clean 执行一些需要在clean之前完成的工作 2、clean 移除所有上一次构建生成的文件 3、post-clean
:提供标准的、统一的项目结构 Maven可以帮我们: 构建工程, 管理jar, 编译代码, 自动运行单元测试, 打包, 生成报表, 部署项目,生成web站点。...两个基本概念 2.1、仓库 仓库:仓库用于存储资源,包含各种jar包。...相当于一个局域仓库,可以复用资源。 私服的作用: 保存具有版权的资源,包含购买或自主研发的jar。 中央仓库的jar都是开源的,不能存储具有版权的资源。...这不是maven的组成部分,但是我们需要使用。 Maven坐标的作用:使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。 3....从前往后分别是: 6.1、3个生命周期 maven对项目构建的生命周期划分为3个: - clean:清理工作 - default:核心工作(编译、测试、打包、部署) - site:产生报告,
最典型的例子是:commons-fileupload-1.3.jar 依赖于 commons-io-2.0.1.jar,如果没有 IO 包,FileUpload 包就不能正常工作。...如果不了解这个情况,导入的 jar 包不够,那么现有的程序将不能正常工作。再进一步,当你的项目中需要用到上百个 jar 包时,你还会人为的,手工的逐一确认它们依赖的其他 jar 包吗?...(也可以自定义仓库) 如果不能联网可以使用我们提供的 RepMaven.zip 解压得到。具体操作参见“Maven 操作指南.txt”。...例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。...(被核实时正确的和最终的)。
放弃不难,但坚持很酷~ 环境说明: springboot:2.2.7 jdk:1.8.0 maven:3.6.3 在平时的项目中,我们用到了 spring boot 默认的插件 spring-boot-maven-plugin...一、打成可执行jar包 如果你的项目工程,不能制作为可执行 jar 包,即执行 java -jar xxx.jar 报错,可以尝试下我的 pom 配置。...设置好以后,通过 idea 工具可以看到 maven 中包含了 spring-boot-maven-plugin 插件: ?...那我们应该在打 jar 包的时候,将相关配置文件给排除掉,这样,启动的时候再指定 conf 目录就可以实时读取 conf 目录的配置了。...四、总结 1、如果需要打成可执行 jar 包的话,可以使用 spring boot 的打包插件:spring-boot-maven-plugin 。
领取专属 10元无门槛券
手把手带您无忧上云