- 
            
            maven compile 编译 maven test 测试 maven package 打包 maven clean 删除target maven install 安装jar包本地仓库 查看全部
- 
            
            maven压缩包下载地址 
 查看全部
- 
            
            maven下载地址 查看全部
- 
            
            使用maven构建Web项目(介绍如何使用maven创建web项目,如何安装jetty插件和tomcat插件,并简介如何将项目打包到jetty和tomcat 中,并运行。) 案例: 描述:新建maven项目,这里使用webapp的模板(Group Id为org.apache.maven.archetypes,Artifact Id为maven-archetype-webapp),项目的Group Id为com.imooc.webdemo,Artifact Id为webdemo,项目里的index.jsp有×号,是因为没有ServletAPI的原因,所以需要在pom.xml中添加Servlet的依赖,打开浏览器进入maven的中央仓库,(https://mvnrepository.com/)搜索Servlet,点击3.0.1,将Servlet的坐标复制到pom中,为该坐标设置scope为provided,也就是说只在编译时和测试时运行,然后将junit的版本更改为4.10,接下来检查为我们创建的目录是否正确,只为我们创建了资源目录,所以按照maven的约定我们手动创建其他目录,在Java Resource下,只为我们创建了资源目录,按照maven的约定,手动创建其他目录,点击Java Resource选择New——>Source Folder,Project名为maven项目名,Folder name为src/main/java,然后再创建存放测试用例的目录,Folder name为src/test/java,如果无法创建目录,在Navigator视图下src的main下进行创建,再转到Explorer视图,进行更新Maven——>Update Project,这样存放资源文件的目录就显示出来了,接下来需要检查,classes文件的输出路径,项目上右键Build Path——>Configuration Build Path,点击source,如下图二为输出路径,确保它的输出路径为target/classes,接着要把项目转化成Web项目,项目上右键Properties——>Project Facets选上Dynamic Web Module,接下来需要修改部署时的默认配置,项目右键Properties——>Deployment Assembly,里面除了主代码的目录之外,测试目录的代码依旧是在发布时部署上去的,这里要将其删除,因为最终发布产品时,我们并不需要这些测试的文件,这样一个Web项目就创建成功了,访问的网址为:localhost:8080/webdemo/。   使用package命令将其打包,也就是打成war包,然后将其拷贝到支持的web容器中,项目就可在浏览器中进行访问了,这里使用jetty作为web容器。 首先在<builder>标签中添加jetty插件,jetty插件去maven的中央仓库中搜索Jetty Maven Plugin,使用的是最新的版本,把该插件的坐标复制到pom的<builder><plugins><plugin>标签中,然后启动一下,Run as——>Maven build,Goals输入jetty:run,如果控制台显示Started Jetty Server表明Jetty容器启动成功了,这样就可以在浏览器访问该项目了,访问http://localhost:8080/出现HelloWorld代表成功,如果想在打包的阶段直接运行jetty插件,可以在Jetty的坐标中添加<executions><execution>指定它的阶段,也就是package阶段运行目标,<phase>package</phase><goals>run</goal></execution></executions>目标为run如图三,在打包成功后使用jetty:run来运行jetty服务,然后右键项目,run as——>Maven build,Goals:输入clean package,访问localhost:8080出现hello world表示成功,如果要使用Tomcat作为容器,需要加入一个Tomcat的插件,进入Tomcat的官网,点击Maven Plugin,找到Version2.2,这里面有个例子,将它的坐标复制到pom中,如图4。    查看全部 查看全部
- 
            
            maven聚合和继承 maven聚合:如果想在maven中将多个项目进行install,将其安装到本地仓库中,必须对其依次执行install命令,maven中有一种方式可以将其放到一起运行,这种方式称为聚合。 案例:将山鸡、南哥、B哥聚合到本地仓库中,这里需要新建一个maven项目,依旧使用quickstart模板,Group Id为com.hongxing,Artifact Id为hongxing-aggreation,它作为其他pom的容器,需要修改它的pom的<package>为pom</package>,然后使用<modules><module>B哥的maven项目名</module><module>南哥的maven项目名</module><module>山鸡的maven项目名</module></modules>,然后右键hongxing-aggreation的Maven——>Maven build,Goals输入clean install控制台输出结果为三次构建,第一次生成B哥的jar,并且将其安装到本地仓库中,第二次生成南哥的jar,并且将其安装到本地仓库中,第三次生成山鸡的jar,并且将其安装到本地仓库中。  继承:三个maven项目中都有一个共同的特点,就是都使用了junit,并且在每个项目的pom.xml中,都对其进行了配置,比如说b哥的maven使用了如下图,这样就出现了很多重复的地方,其实maven中可以想java中一样,将其共同的特性封装成一个父类,所以新建一个maven项目,Group Id为com.hongxing,Artifact Id为hongxing-parent,然后修改它的pom.xml,要将<dependencies>标签放置在<dependencyManagement>标签里,如果使用这个标签对依赖进行管理,它并不会在这个项目中运行,也可以将junit的版本号提取出来,在外面定义一个<properties>属性,并在该属性里通过<junit.version>设置junit的版本号,这样就可以在<dependencies>中的<version>中像使用EL表达式那样来调用它,${junit.version},最后将它的<package>改成pom,然后打开B哥的pom让其继承pom,这里就可以将junit的版本号进行删除,<scope>也可以删除掉,这里要使用到<parent>标签,然后引入我们的parent的maven的坐标,这样junit已经从父类parent,也就是pom中继承过来了。 继承:三个maven项目中都有一个共同的特点,就是都使用了junit,并且在每个项目的pom.xml中,都对其进行了配置,比如说b哥的maven使用了如下图,这样就出现了很多重复的地方,其实maven中可以想java中一样,将其共同的特性封装成一个父类,所以新建一个maven项目,Group Id为com.hongxing,Artifact Id为hongxing-parent,然后修改它的pom.xml,要将<dependencies>标签放置在<dependencyManagement>标签里,如果使用这个标签对依赖进行管理,它并不会在这个项目中运行,也可以将junit的版本号提取出来,在外面定义一个<properties>属性,并在该属性里通过<junit.version>设置junit的版本号,这样就可以在<dependencies>中的<version>中像使用EL表达式那样来调用它,${junit.version},最后将它的<package>改成pom,然后打开B哥的pom让其继承pom,这里就可以将junit的版本号进行删除,<scope>也可以删除掉,这里要使用到<parent>标签,然后引入我们的parent的maven的坐标,这样junit已经从父类parent,也就是pom中继承过来了。 src目录依然有报错,其实test目录和main目录,对于parent的pom来说,是没有作用的,可以将其进行删除,然后更新一下它,Maven——>Update Project,这个叉号就消除了。  查看全部 查看全部
- 
            
            maven依赖传递 举例:古惑仔电影中,山鸡和南哥混,南哥和B哥混,对于山鸡而言就间接和B哥混了,换成程序而言,山鸡依赖南哥,南哥依赖B哥,山鸡就就依赖传递B哥了。 案例: 描述:新建3个maven项目,选择quickstart模板,第一个Group Id为com.hongxing,Artifact Id为hongxing-bge,Package为默认的,第二个Group Id为com.hongxing,Artifact Id为hongxing-nange,第三个Group Id为com.hongxing,Artifact Id为hongxing-shanji。 步骤1:南哥依赖于B哥,南哥的pom.xml中进行配置,引入B哥的依赖,需要知道B哥的坐标,然后编译一下南哥,Maven——>Maven build(在Goals:compile)。   南哥的maven项目首先会到本地仓库中进行查找B哥的jar包,如果本地仓库中没有,则会从远程中央仓库中下载,如果远程中央仓库中没有,则会报错,我们先将B哥进行打包,Maven——>Maven build(Goals:clean package),然后再将B哥安装到本地仓库中Maven——>Maven build(install),它依然会编译,并且会测试一遍,并且安装到指定的仓库中,接下来再对南哥进行编译Maven——>Maven build(clean compile),这样南哥就构建成功了。 步骤2:山鸡依赖于南哥,首先,要打包南哥的maven项目,并进行安装到本地仓库中Maven——>Maven build(clean install),依旧要找到南哥的坐标,然后编译一下山鸡Maven——>Maven build(compile)   
 依赖具有传递性,山鸡的maven项目并没有依赖B哥,B哥的依赖缺自动的加入到了山鸡的依赖目录里。排除依赖:依赖南哥的<dependency>标签中添加<exclusions><exclusion>B哥的坐标<exclusions><exclusion> 举例:山鸡只听从南哥的吩咐,不听其他人的吩咐,将B哥的依赖从山鸡的maven项目依赖中排除,。  产生如下图JRE System Library为J2SE1.5的原因是:maven默认使用jdk1.5,我们可以将其修改,点击JRE System Library的Properties属性,选择JavaSE-1.7(jre7),这样修改比较麻烦每次创建一个项目都需要修改一下,可以修改settings.xml,找到<profiles>大概182行,加入如下图片的代码,指定它默认的jdk为1.7。   查看全部 查看全部
- 
            
            maven依赖范围 通过junit依赖来讲解依赖的范围<scope>  我们平时开发时,如果使用某一框架,就要引入相应的jar包到项目的classpath路径中,这样我们的项目就可以使用框架封装好的一些方法。 maven中提供了三种classpath: 1、编译 2、测试 3、运行 而我们使用junit依赖范围的值为test,这就表明了junit只存在测试的classpath中,也就是存在测试的范围,所以依赖范围就是控制依赖与三种classpath的关系的。 具体的scope的属性:查看maven官网(maven.apache.org),查看它的文档,点击Index (category),找到The Dependencies and Dependency Exclusions,找到Dependency Scope,提供了6种scope,分别是 compile:默认的范围,如果没有指定依赖范围,就会使用此依赖的范围的maven依赖,编译测试运行这三种classpath都有效。 provided:编译和测试时都有效,最后运行不会被加入(举了一个例子,当我们构建一个JavaEE的Web应用时,可以依赖ServletAPI,但是在最后运行时,并不会被加入,因为Web容器已经包含了这个API,如果再加入就会导致冲突)。 runtime:在测试和运行时有效,典型的例子就是jdbc驱动的实现,项目的主代码的编译只需要jdk提供的jdbc的API,只有在执行测试或者运行项目的时候才需要实现生成接口的具体jdbc的驱动 test:只在测试时有效,典型应用就是junit。 system:和provided一样,编译和测试时有效,与本机系统相关联,可移植性差,比如要引用本机的Java_Home,如果把项目移植到其他系统上,就可能由于路径的不一致,而导致错误。 import:导入的依赖范围,它只使用在dependencyManagement标签中,表示从其他的pom中继承过来的依赖。  该文档提供了import的例子,将A中的依赖导入到B中。  查看全部 查看全部
- 
            
            maven中Pom.xml解析 Pom.xml:maven项目的核心管理文件,用于项目描述、组织管理、依赖管理、构建信息的管理,Pom中包含了许多的标签。 Pom.xml的常用元素: <project>是pom.xml的根元素,包含了pom的一些约束信息。 <modelVersion>是一个固定的版本,也是必须的元素,指定了当前pom的版本。 坐标的信息由以下标签组成: <groupId>主项目的标识,用来定义当前的maven属于哪个实际的项目,和我们为项目创建的包是一样的,是由反写的公司网址+项目名组成</groupId> 注意:maven的项目和实际的项目不是一一对应关系,maven项目体现的是模块化的概念,因此一个实际项目往往会划分成很多的模块。 <artifactId>表示一个模块的标识,实际项目中的一个模块,一般会使用项目名+模块名进行标识,比如struts2项目,它下面可能分为struts2demo01、struts2demo02,struts2是项目名,而demo01和demo02是模块名</artifactId> <version>标识当前项目的版本号,版本号一般都是由三个数字来组成的,第一个0标识大版本号,第二个0表示分支版本号,第三个0表示小版本号,一般形式可以写为0.0.1snapshot,snapshot为快照的版本,版本除了snapshot,还有内测的测试版本alpha,以及公测版beta,比如在网上玩新出的游戏,经常会有公测不删档,对应的就是该版本,还有Release版本,它是一个稳定的版本,以及GA版本是一个正式的发布版本<version>。 <packaging>maven项目打包的方式,不指定默认打包是jar,还可以打包成其他类型,比如war、zip、pom等<packaging> 其他的标签: <name>项目的描述名,一般是在产生对象文档时候才会使用</name> <url>项目的地址</url> <description>项目的描述</description> <developers>开发人员的列表,项目发布的时候,可以把开发人员的信息填写进去</developers> <licenses>许可证的信息,比如经常用到的开源框架,它都会有一些许可证的信息</licenses> <organization>组织信息</organization> 依赖列表:它是比较重要的,会经常使用到,依赖列表下可以包含多个依赖项,依赖项通过制定它的坐标来确定依赖所在的位置,也就是<groupId><artifactId><version>,还可以指定它的<type>,还可以使用<scope>指定依赖的范围(之前写的junit的测试范围是test,test表示junit,这个构件(junit的jar包),只在测试的依赖范围内有用,比如在主代码中引用junit这个类,它就会报错),<optional>该标签有两个值,分别是true和false,它的作用是设置依赖是否可选,默认是false,子项目默认是false时,子项目默认是继承的,如果为true,子项目必须显示的引入该依赖,<exclusions>是一个排除依赖传递的列表,该标签下可以排除多个依赖通过<exclusion>,作用是:比如Ajar包依赖Bjar包,Bjar包又依赖Cjar包,C对于A来说就是传递依赖,如果A不想依赖C,就可以使用这个标签,比如我们使用的Spirng除了核心的jar包之外,它的jar包还引用其它很多相关的jar包,但对于我们而言只需要使用Spring的jar包,而其他的一些相关的jar包我们并不需要使用。  <dependencyManagement>依赖的管理,也可以通过<dependencies>声明依赖列表,通过<dependency>包含多个依赖,但是它并不会被运行,也就是说它不会被引入到实际的依赖当中,该标签一般主要用于定义在父模块中,供子模块继承用的。比如之前多个maven项目中,都使用到junit,我们就可以抽象出一个父类的模块,然后在父类模块中对junit进行一个定义,其他子模块直接继承该父模块即可。  <build>通常为我们构建的行为来提供相应的支持,我们经常在这里使用到<plugins>表示插件的列表,在该标签下可以有多个<plugin>标签,(我们之前使用到source插件对项目进行打包),在<plugin>中依旧是要指出插件的坐标通过<groupId><artifactId><version>  <parent>以及<modules>:经常使用到的:<parent>通常用于在子模块中对父模块的pom的一个继承,<modules>用来聚合运行多个maven的项目,如果有很多的maven模块是要编译的话呢,我们之前的办法是一个一个的编译,而使用<modules>就可以指定多个的模块,然后在一起进行编译。  查看全部 查看全部
- 
            
            一、eclipse中安装maven插件(如果eclipse是4.0以上或者myEclipse就不用安装插件了) 1、插件放置在eclipse中的dropins文件夹下,并重启eclipse。 2、Maven需要jdk支持,而eclipse已经添加了jre,根据提示修改eclipse.ini。  3、eclipse-ini文件中 512m下添加-vm 再在底下添加jdk的bin目录的路径+javaw.exe 4、修改eclipse默认的jre(eclipse运行在JRE之上,maven使用到了JRE的支持,所以要修改eclipse的JRE,使其可以找到JDK,使用目录中私有的JRE,这样就能完全解决这个问题,默认的JRE没有一些包) Preferences——>Java——>Installed JREs——>Add——>我们安装JDK的位置 Preferneces——>Maven——>Installations——>Add——>我们安装的Maven的位置 5、修改User Settings(找到settings.xml) 二、创建Maven项目 1、目录模板选择maven-archetype-quickstart 2、运行Maven项目——》右键run as——》Maven Builder——》输入compile点击run即可 3、Maven打包——》右键run as——》Maven Builder——》package(打包之后在项目根目录中就会有一个target文件夹,该文件夹下就会有该jar包 查看全部
- 
            
            maven中的坐标和仓库 构件:插件<plugin>+jar包<dependency> 坐标概念:maven中,任何一个依赖、插件、都可以称为构件,所有构件通过坐标作为其唯一标识。 建议:创建maven项目时,尽量符合规范<gorupId>(公司域名反写+项目名)和<artifactId>(项目名-模块名),<version>(构建的版本号)这样看起来更清晰,并符合逻辑,也更方便搜索。 仓库概念:管理项目的构件,仓库分为本地仓库和远程仓库。本地仓库找不到我们的构件,则会去maven的中央仓库查找,查找到后就会下载到本地仓库中,如果远程仓库中也找不到就会报错,maven默认提供了一个中央仓库地址(apache-maven——>lib——>maven-model-builder.license.jar里的pom-4.0.0xml,maven提供的超级pom,所有Maven项目都会继承这个pom)。 中央仓库地址:基本上平常用的开源框架,这里都会有,它包含了绝大多数的Java开源项目(基本上平常开发常用的开源框架都可以找到)。 <layout>:表示使用默认布置。 <snapshots>下<enabled>为false:禁止下载快照的版本构件。  镜像仓库:A提供了和B一样的功能,Maven的中央仓库服务器都是位于国外的,有时可能由于一些原因导致无法访问外网,所以国内提供了它的镜像仓库,相对来说,更快、更稳定一些。 修改镜像仓库的位置:apache-maven——>conf——>setting.xml中mirror,配置了镜像仓库,就不会再访问中央仓库。 更改仓库位置:maven从远程仓库中下载的构件,默认存放在用户目录中C:\Users\Administrator\.m2\repository,一般不会把仓库放在C盘目录中,如果遇到一些问题这个数据可能就没了,所以一般在<localRepository>标签中放置的是其他盘下的仓库。并且把setting复制一份放到goujian文件夹下,更新maven版本,就不用在重新更改了,直接把这个copy过去即可。  查看全部 查看全部
- 
            
            Jdk1.7才能用3查看全部
- 
            
            maven常用命令2 查看全部
- 
            
            maven 常用命令1 查看全部
- 
            
            path 加入maven变量 查看全部
- 
            
            maven系统变量 查看全部
举报
 
             
         
                 
                 
                 
                