mven入门

  

https://blog.csdn.net/Yang_Hui_Liang/article/details/78957584

 

What's Maven?

    称之为项目对象模型(POM),是一个强大的项目构建工具。Maven是使用

Java开发的,因此Maven更多的用于Java项目。不过阿帕奇公司并不认为Maven仅仅是个构建工具,《Maven哲学》:http://blog.csdn.net/kapuliyuehan/article/details/7218057 这里只把它当做构建工具就OK了....

     

 

何为构建工具?

    构建工具是将软件项目相关的过程自动化的工具。构建一个软件项目通常包含以下一个或者多个过程:

    

l 创建项目

    首先确认项目类型吧,这里有JAVASE项目和JAVAEE项目

l 编码阶段

    这个阶段就是编码、添加依赖的Jar包和服务器的配置

l 编译源代码

l 将编译后的代码打包成JAR或者ZIP

l 将代码发布到服务器、仓库或者其他地方。

复习一下如何用命令行编译和运行Java文件,src目录下新建个cmd文件,写上:

@pushd E:\WebTools\mars2wksp\Suck\src

@javac com/suck/JustSuck.java

@java com.suck.JustSuck

@pause

    

运行打包后的:  

@pushd E:\Learning\Level3\Maven\j2se

@java -jar Suck.jar

@pause

 JAVASE项目就是这样玩的了

 

    web项目则是war包,其实也是个zip包来的,web项目的运行需要到tomcat,右键项目导出打包成war包,丢到webapps目录里在startup就能访问项目中的资源了。其实tomcat就是把它解压一下...

    

    不打包也可以,在eclipse发布运行一下,到temp0 -> wtpwebapps 下把目录直接拷贝到tomcat的webapps下就OK了。不贴图。

   

有些项目可能需要更多的过程才能构建完成,不过这些过程也可以被整合到构建工具中,因此,也可以实现自动化。

Maven融合了四个阶段(前四个)。

 

Maven仓库

    概念:Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR。

     

Maven中央仓库中包含了世界上大多数流行的Java构件(Jar包),比如JDBC、Common-io等等,

官方仓库地址:http://repo1.maven.org/maven2/

仓库搜索引擎:http://www.mvnrepository.com/

 

但这个仓库是在国外的,如果依赖的Jar包都要漂洋过海的下载就太慢了,私服就应运而生,私服:一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。

 

私服优点:节省自己的外网带宽、加速Maven构建、部署第三方构件、提高稳定性,增强控制、降低中央仓库的负荷。

马云就提供了一个地址:

http://maven.aliyun.com/nexus/#welcome

 

 本地仓库:Maven项目从私服或者中央仓库下载过的Jar包会缓存到本地,以后使用的就是本地的缓存了,私服和中央仓库的压力都会变小。

 原理:

 

 

 建立这个仓库的原因:

     1.Jar包下载过于分散导致开发周期延长,maven就提供了中央仓库将所有jar包聚合到一起。

     2.私服:中央仓库的网络资源优先,各地就出现了各自的私服,降低中央仓库的服务器压力

     ,开发者以就近原则从最近的私服上获取Jar包。

     3.本地仓库:如果需要下载Jar包,就必须依赖maven软件,maven需要配置私服的地址,配

     置本地缓存的jar包位置。

     

     

安装Maven

        1.从http://maven.apache.org/download.html下载最新的maven,解压到指定目录。

        2.配置环境变量

            

 

     

     Maven_Home变量值指向maven的根目录,然后path中加上:%Maven_Home%\bin;

          

     至此,到控制台上执行一下 mvn -v ,出现以下字样即表示配置成功了:

      

     

3.配置

根目录进入conf文件夹,打开settings.xml,修改一下<localRepository>,本地仓库

 

         配置私服地址:

             

 

    用马云的私服替换中央仓库。<mirrorOf>那里不要动。

    还可以配置一个局域网的:

 

    

    安装好之后可以开始用maven来创建项目了。

Maven的项目类型和之前的Java项目类似,但目录结构发生了变化。

 

    Maven常用命

    

mvn archetype:generate :创建 Maven 项目 

    在哪个目录下使用这个命令,项目就会在哪个目录创建。

    

 

    命令详解:http://blog.csdn.net/sxdtzhaoxinguo/article/details/46895013

    这个命令是用来生成项目骨架的,有1 - 10个选项。

    选quickStart ,第七个选项,快速启动。这是个JavaSE的骨架,样例。

 

    groupId表示公司名,类似:org.apache.common

    artifactId表示项目名称,同一个公司下可能有多个项目的

    version,版本号,默认是1.0-SNAPSHOT,测试版。

    (一些软件就是用的这种方式作为标识的,RELEASE则是正式版,发布阶段的版本,稳定)

    package 包名,默认不填的话就以公司名作为包名了。

    参考:

 

    

 

 

    

    遇到问题:

 

在这一步一直卡住,原因是请求从远程服务器上取catalog,因为网络的问题导致的。

加上参数:-DarchetypeCatalog=internal

     

success之后,目录下就有了这个项目的文件夹了:

 

    项目结构:

    src

-> main 这里存放的是Java源代码

-> test 单元测试

这里就不展开说明了。

 

    mvn compile :编译源代码

这个命令要在pom.xml同级目录下运行,运行完之后会有个target目录,里面就是编译好的class文件。

 

    mvn package : 依据项目生成 jar 文件

    编译完成之后就是打包了,还是在这级目录运行此命令。 完成之后target目录下会生成个以artifactId + 版本号命名的Jar包:

 

    现在还不能直接运行,因为这个jar包是没有指定main方法的,需要手动指定的,格式:

    java -cp 包名.jar main所在的全类名

    比如:java -cp TestJar-1.0-SNAPSHOT.jar com.suck.App   OK.

 

    生成WEB项目序号选的是10,一样要groupId四个选项的,而且打包方式和JAVASE的方式一毛一样,但生成的是war包,也是在target目录中。war包可以丢到webapps里直接运行的,不多BB。

     

    这个war包其实就是个WebContent的目录结构打包一下:

 

    如果要测试运行,可以用以下命令运行: mvn tomcat:run  很方便

    

 

    如果之前没用过这个命令,maven会去仓库下载tomcat,需要等一下的。

    运行结果:

     

    

    

    其他一些命令:

    mvn test-compile :编译测试代码

    mvn test : 运行应用程序中的单元测试

    mvn site : 生成项目相关信息的网站

    mvn clean :清除目标目录中的生成结果

    mvn install :在本地 Repository 中安装 jar ,当然war也是可以的,运行成功之后可以去

本地仓库中找到安装的这个项目,以package的顺序 com -> suck ..即可找到:

 

 

    mvn deploy:将jar包发布到远程仓库

    mvn eclipse:eclipse :生成 Eclipse 项目文件

运行这个命令呢,项目就会变成eclipse的项目结构:

 

在eclipse中就可以导入此项目。但首先要关联一下maven,步骤:

  

    

 

点击Installations -> Add -> Directory -> 选中maven根目录,回到此界面:

 

勾选刚导入的maven。

 

2. User Settings -> Global Settings 和 User Settings 指向maven安装目录的conf -> settings.xml就OK了。

 

但这个时候项目会有个错误,原因很简单:tomcat的函数库没有加进来。右键buildPath -> add libraries -> server runtime 把tomcat加进来就OK了

posted @ 2019-11-04 15:08  zdcsmart  阅读(189)  评论(0编辑  收藏  举报