由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常用参数和命令以及简单故障排除...默认为jar。这个不仅表示项目最终产生何种后缀的文件,也表示build过程使用什么样的lifecycle。...,大致说就是一个项目将要产生的文件,可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。...-1.0-SNAPSHOT.jar文件,即为打包后文件 打包并安装到本地仓库mvn install,此时本机仓库会新增maven-quickstart-1.0-SNAPSHOT.jar文件。...-1.0-SNAPSHOT.jar文件,即为打包后文件 mvn install 打包并安装到本地仓库,此时本机仓库会新增maven-quickstart-1.0-SNAPSHOT.jar文件。
使用maven构建的项目,整个项目的体积小 maven项目不需要手动导入jar包,通过在pom.xml中添加依赖,引用依赖会自动从maven仓库下载jar包,方便快捷。...项目一键构建:使用maven可以快速地对项目进行编译--测试--运行--打包--安装 maven支持跨平台操作,可在window、linux、mac上使用 maven遵循规范开发有利于提高大型团队的开发效率...这是全世界maven项目的通用约定,请记住这些固定的目录结构。 编译和测试 在项目根目录下运行mvn clean compile命令。执行输出如下所示: ?...clean:清理输出目录target下生成jar包 compile:编译项目主代码 编译完成后,我们一般都会运行测试代码进行单元测试,虽然很多情况下,我们并没有这么做,但是我还是建议大家通过Maven做一些自动化的单元测试...总结 到此,关于maven的入门基础知识总结完毕,文章知识点相对繁琐、复杂,还请读者多次阅读和实践,如有错误之处,烦请多指正!
mvn -e, --errors 控制Maven的日志级别,产生执行错误相关消息; mvn -X, --debug 控制Maven的日志级别,产生执行调试信息; mvn -q, --quiet 控制Maven...编译源代码: mvn compile 4. 编译测试代码:mvn test-compile 5. 运行测试:mvn test 6. 产生site:mvn site 7....在本地Repository中安装jar:mvn install 9. 清除产生的项目:mvn clean 10. 生成eclipse项目:mvn eclipse:eclipse 11....、测试代码,生成测试报告,生成jar/war文件 mvn jetty:run 运行项目于jetty上, mvn compile 编译 mvn...mvn test-compile 编译项目测试代码。 。 mvn integration-test 在集成测试可以运行的环境中处理和发布包。
POM包含的项目是使用Maven来构建的,用来包含各种配置信息、目标、插件等,在执行任务或目标时,Maven会使用当前目录中的POM文件,读取得到所需要的配置信息,然后执行目标。...编译或构建,jta的jar会自动下载,并把它放到Maven的本地资源库里。...(3)如果没有设置远程仓库,Maven则会停止处理并抛出错误(找不到依赖库)。 (4)搜索远程仓库,如果没有找到,Maven则会停止处理并抛出错误(找不到依赖库)。...2、将myjar.jar安装到Maven的本地资源库里。...运行结果:执行成功。 6、引用外部依赖 1、创建Maven项目(My_Maven_Demo5),创建lib文件夹,将要引用的外部依赖拷贝进去(例如:自定义库myjar.jar)。
②项目的构建,我们可以通过Maven构建Maven项目,它开创了一套目录结构,对各种文件的分类更加的细致。 简单的介绍就到这里,更深入的我们后面慢慢提及。...命令一: mvn clean 这个命令可以清除我们的target文件夹(这个文件夹存放编译后的.class文件) 命令二: mvn compile 和上面的命令相反,这个命令是编译一个项目的,前提是我们当前命令行位置为该项目的根目录下...(图片来自网络) Maven默认的是compile,即对于编译classpath,测试classpath,运行时classpath 都需要这个jar包。...尤其值得注意的是provided,这个就像servlet-api那样,我们编译测试都需要这个jar包,但是当上传到服务器的时候就不再需要了(Tomcat的lib下有),如果这里我们默认compile,那么当程序在服务器上运行的时候将出现...---- 总结: Maven给我们构建项目和依赖管理带来了很大的便利,再也不需要我们苦恼导入jar包,和jar包版本冲突,并且提供了一套从编译到发布的方法,大大提高和加快了我们项目的项目进度。
编译源代码: mvn compile 4. 编译测试代码:mvn test-compile 5. 运行测试:mvn test 6. 产生site:mvn site 7. ...在本地Repository中安装jar:mvn install 9. 清除产生的项目:mvn clean 10. 生成eclipse项目:mvn eclipse:eclipse 11. ...、测试代码,生成测试报告,生成jar/war文件 mvn jetty:run 运行项目于jetty上, mvn compile 编译 mvn...=jar -Dfile=d:\client-0.1.0.jar -DdownloadSources=true -DdownloadJavadocs=true mvn -e 显示详细错误...mvn test-compile 编译项目测试代码。 。 mvn integration-test 在集成测试可以运行的环境中处理和发布包。
看到上图我所指向的地方,该地方gradlew.bat就是等下我们需要运行的命令;但是先不着急运行;因为这个命令会去读取一个文件;在这个文件当中配置了gradle的版本和下载地址;一旦运行变化自动下载,有时候会下载不过来...cmd到项目根目录运行 gradlew.bat 这个过程会相当漫长取决于你的网速,因为我之前已经编译过了,中间缓慢的过程笔者无法展示出来,不过小伙伴需要耐心等待 可能最后结果会失败,如果显示失败就再运行一遍...遇到这种问题是因为这个类所在的项目没有编译这个类—说白了就是没有产生class文件;比如上图那个错误便是没有找到 InstrumentationSavingAgent 这个类,那么你首先找到这个类所在的项目...gradle产生的,我们上面已经把编译方式改成了idea,idea默认编译文件为out——说白了就是这个build可以直接删除;out文件夹都没有表示这个项目当中的java类idea压根没有编译;我们可以运行这个项目下面的测试类...出现如上图的错误,小伙伴不必担心,完全可以忽略掉,因为我们运行tese包,但是包中没有一个类,但是IDEA还是会帮我们编译的,只是编译是个空的 我们仍然可以看到out文件夹产生了 好,问题解决完成后,
Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。...compile:编译 将java源文件编译成class文件 test:测试项目 执行test目录下的测试用例 package:打包 将项目打成jar包 clean:删除target文件夹 install...同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了两种避免冲突的策略,因此在Maven中是不存在依赖冲突的。...pom.xml详解 pom.xml是Maven的核心,你的项目需要什么Jar包就在pom.xml里面配置。当编译项目时Maven读取该文件,并从仓库中下载相应的Jar包。...--描述项目所属组织的各种属性。Maven产生的文档用--> <!
编译源代码: mvn compile 编译测试代码:mvn test-compile 运行测试:mvn test 产生site:mvn site 打包:mvn package 在本地Repository...中安装jar:mvn install 清除产生的项目:mvn clean 生成eclipse项目:mvn eclipse:eclipse 生成idea项目:mvn idea:idea 组合使用goal...、测试代码,生成测试报告,生成jar/war文件 mvn jetty:run 运行项目于jetty上, mvn compile 编译 mvn test 编译并测试 mvn clean 清空生成的文件 mvn...=jar -Dfile=d:client-0.1.0.jar -DdownloadSources=true -DdownloadJavadocs=true mvn -e 显示详细错误 信息. mvn validate...mvn test-compile 编译项目测试代码。 。 mvn integration-test 在集成测试可以运行的环境中处理和发布包。
packaging 项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用。...本地仓储配置 从中央仓库下载的jar包,都会统一存放到本地仓库中。我们需要配置本地仓库的位置。 打开maven安装目录,打开conf目录下的setting.xml文件。...maven-assembly-plugin支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的,例如用户可以按文件级别的粒度、文件集级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包...代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件。...这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现) mvn package 将编译好的代码打包成可分发的格式,如JAR,WAR,或者EAR mvn pre-integration-test
在POM中,可以指定项目所依赖的库和组件的版本号、URL地址等信息,Maven会自动下载和安装这些依赖项,并将它们放置在特定的目录中,供项目使用。...Maven的依赖管理具有以下特点: 自动管理依赖:Maven会自动下载和安装项目所需要的依赖项,无需手动添加和管理。...依赖传递:Maven自动处理依赖项的传递性,即如果A依赖于B,而B又依赖于C,那么Maven会自动下载和安装B和C,并将它们添加到A的依赖项中。...Maven的依赖管理使得项目的构建和管理更加简单和可靠,减少了手动管理依赖项的复杂性和错误。...3.Maven基础概念 3.1 仓库 仓库:用于存储资源,主要是各种jar包 关于仓库,我们前面讲到了有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库 中央仓库:maven团队自身维护的仓库
,正常情况子项目应该继承父项目依赖,无需使用版本号 并行构建 − 编译的速度能普遍提高20 - 50 % 更好的错误报告 − Maven 改进了错误报告,它为您提供了 Maven wiki 页面的链接,...您可以点击链接查看错误的完整描述 下载、安装 环境要求 Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK 。...,如果能看到 Maven 相关版本信息,则说明 Maven 已经安装成功 mvn -v 解压下载的文件:apache-maven-3.6.0-bin.zip 添加 M2_HOME 和 MAVEN_HOME...--描述项目所属组织的各种属性。Maven产生的文档用 --> 错误(无法找到依赖的文件) 步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)
回想一下,当你新到一家公司或新进入一个项目,安装完JDK后就会安装配置Maven,或许需要修改settings.xml文件,比如你可能会从其他人那里copy一段配置到你的settings.xml中(私服的一些配置...② src/main/resources中的资源文件会COPY至目标目录,这是Maven的默认生命周期中的一个规定动作。...将本地工程jar包上传安装到本地仓库,以供其他项目使用。 site:站点。进行站点部署。 deploy:部署。拷贝最终的工程包到远程仓库或私服中,以共享给其他开发人员和工程。...这是由于在IDEA中使用Maven编译的时候,项目源和目标都使用了JDK 1.5的来编译,但是目前我们又没装JDK1.5(实际上我们安装的是JDK1.7以上的版本),最后还是用了我们自己装的版本来编译,...因此编译还是不能通过,就出现了刚刚这种错误!
在安装的目录下找到conf xml配置文件中的很多英文注释,如果没有能力区阅读可以忽略,但需要在文件中配置部分路径。...4.IDEA集成maven 创建一个Maven项目: maven项目在默认情况下会产生JAR文件,编译后的classes会放在target/classes下面,JAR文件放在target下面...5.maven常用命令 常用命令 编译源代码 mvn compile 编译测试代码 mvn test-compile 清除产生的项目 mvn clean 运行测试 mvn test 产生site mvn...,使用此依赖范围对于编译、测试、运行三种classpath都有效,即在编译、测试和运行时都要使用该依赖jar包; test 测试依赖范围,只对测试有效,表明只在测试的时候需要,在编译和运行时将无法使用该类依赖...编译和测试有效,运行无效。如servlet-api,在项目运行时,tomcat等容器已经提供,无需Maven重复引入; runtime 运行时依赖范围。测试和运行有效,编译无效。
实际项目 在实际项目中整合第三方框架,Web 工程中除了 Java 程序和 JSP 页面、图片等静态资源之外,还包括第三方框架的 jar 包以及各种各样的配置文件。...所以综上所述:构建就是以我们编写的 Java 代码、框架配置文件、国际化等其他资源文件、JSP 页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。...报告:在每一次测试后以标准的格式记录和展示测试结果。 打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。...安装:在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。 部署:将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。...-- 描述项目所属组织的各种属性。Maven产生的文档用 --> demo <!
我们知道,项目开发不仅仅是写写代码而已,期间会伴随着各种必不可少的事情要做,下面列举几个感受一下: 我们需要引用各种jar 包,尤其是比较大的工程,引用的jar 包往往有几十个乃至上百个, 每用到一种...我们辛辛苦苦写好了Java 文件,可是只懂0 和1 的白痴电脑却完全读不懂,需要将它编译成二进制字节码。...项目的一键构建 我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。什么是构建?...指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个过程称为构建。 一键构建指的是整个构建过程,使用maven 一个命令可以轻松完成整个工作。...maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。
Maven的核心概念 那么既然你看到了这篇文章,我暂且就认为你对Maven有一定的了解并且已经完成了Maven的下载安装和环境变量的配置。...构建环节: [1]清理:将以前编译得到的旧的class字节码文件删除,为下一次编译做准备 [2]编译:将Java源程序编译成class字节码文件 [3]测试:自动测试,自动调用JUnit程序 [4]报告...:测试程序执行的结果 [5]打包:动态Web工程打war包,Java工程打jar包 [6]安装:Maven中特定的概念——将打包得到的文件复制到仓库中的指定位置 [7]部署:将动态Web工程生成的war...关于依赖的范围问题要尤为重视,如果你将jsp-api的范围设置为compile,项目运行后会产生一个空指针异常,显然这个异常不是我们的代码产生的,因为我们压根就没写什么代码。...此时这些jar包就会产生冲突,从而造成一些无法理解的错误。所以依赖范围一定要严谨。
}/src/test/resources 测试使用的资源 一 个maven项目在默认情况下会产生JAR文件,另外编译后的classes 会放在${basedir}/target/classes下面,JAR...文件会放在${basedir}/target下面。...源代码和资源文件放在src/main下面,而测试代码和资源放在src/test下面。...编译后的class文件放在target/classes/目录下面,测试class文件放在target/test-classes/ 目录下面。...运行成功!! 现在你可能会有不少的问题。所以下一篇文章会解释 maven 的核心概念,希望能回答你可能会有的一些疑问。
检查一下是否已经完成安装,打开dos窗口,输入mvn –v,如果出现一下信息则表示maven2已经安装成功: X:>mvn –v Maven Version2.0.4 5、常用运行命令 Maven2的运行命令是...常用情形: 创建Maven项目:mvn archetype:create 编译源代码:mvn compile 编译测试代码:mvn test-compile 运行测试:mvn test 产生site...package,已发布的格式,如jar,将已编译的源代码打包。 integration-test,在集成测试可以运行的环境中处理和发布包。 ...我们必须使用Maven来手动将这些jar包安装到本地的存储库中。为了做个示例,我们将安装Java Activation框架的jar包。...当我们在该目录中运行mvn package命令时,这些项目会按照依赖顺序而被构建。 11、插件和报表 Maven2.0 有大量的插件可以使用。
领取专属 10元无门槛券
手把手带您无忧上云