zoukankan      html  css  js  c++  java
  • Maven项目管理工具

    一:maven是什么?

        Maven是干什么用的?这是很多开发者在刚开始接触Maven时最大的问题。之所以会提出这个问题,是因为即使不使用Maven 我们仍然可以进行B/S结构项目的开发,从表现层,业务逻辑层到持久化层再到数据库都有成熟的解决方案——不使用Maven我们一样可以开发项目啊?

        其实Maven并不是直接用来辅助编码的,当我们整合各大框架进行web开发时,第一件事肯定就是整合jar包,一个工程下一份整合jar,工作区就会出现大量的重复文件,项目就会很臃肿,而maven只在本地仓库中保存一份,需要jar包的工程只需要以坐标的方式简单引用就可以了。

        其二,很多jar包之间都是相互依赖的,当使用maven时,我们就完全没有必要去了解其中的依赖关系。

        第三个原因:JavaEE开发中需要使用到的jar包种类繁多,几乎每个jar包在其本身的官网上的获取方式都不尽相同。为了查找一个jar包找遍互联网,身心俱疲,没有经历过的人或许体会不到这种折磨。不仅如此,费劲心血找的jar包里有的时候并没有你需要的那个类,又或者又同名的类没有你要的方法——以不规范的方式获取的jar包也往往是不规范的。

        第四个原因:随着JavaEE项目的规模越来越大,开发团队也越来越大,每个人手里不可能保存整个项目,必须将项目拆分成多个工程模块协同开发,maven的依赖管理机制就是解决工程拆分后个模块相互调用和访问的。

    二:安装Maven并建立maven web项目:

    网上有很多详细的教程,我就不在重复,建议即使用的Myeclipse也自己装一个。创建修改本地仓库。期间肯定会遇到很多问题,网上大部分都有解决方案。缺少插件,添加依赖,更改配置等等问题,几乎都会碰到,但是每个人的电脑和配置又都不同,我是花了整整一整天的时间才建立了第一个没有出错的Maven项目。

      后来又装了一次《番外篇:因为一个固态导致的——系统重装与JAVA软件环境下载安装配置》感觉很简单

    三:Maven的常用操作

    1)Maven常用构建命令:

      (在命令行中执行)Maven的命令要在pom.xml所在目录中去执行

    1.1  Mvn compile:编译的命令,存在于 target 目录

    1.2  Mvn clean:清除命令,清除已经编译好的class文件,具体说清除的是target目录中的文件

    1.3  Mvn test:测试命令,该命令会将test目录中的源码进行编译

    1.4  Mvn package:打包命令

    1.5  Mvn install:安装命令,会将打好的包,安装到本地仓库

    常常有些时候编译器会根据路径下载jar包失败,这时这个这个命令就体现出他的价值了

    你可以到

    https://mvnrepository.com/:

    搜索你所需要的jar包下载下来,然后使用这个命令将jar包安装到本地仓库

    mvn install:install-file -Dfile="C:UsersAdministratorDownloadsojdbc6-11.2.0.4.0-atlassian-hosted.jar" -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4.0-atlassian-hosted -Dpackaging=jar

      

    1.6  组合命令

    1.6.1  Mvn clean compile:下载jar包到本地仓库,先清空再编译

    1.6.2  mvn clean test:先执行clean,再执行test,通常应用于测试环节

     1.6.3  mvn clean package:先执行clean,再执行package,将项目打包,通常应用于发布前

             执行过程:

                      清理————清空环境

                      编译————编译源码

                      测试————测试源码

                      打包————将编译的非测试类打包

    1.6.4  mvn clean install:先执行clean,再执行install,将项目打包发布到本地仓库,通常应用于发布前

             执行过程:

                      清理————清空环境

                      编译————编译源码

                      测试————测试源码

                      打包————将编译的非测试类打包

                      部署————将打好的包发布到资源仓库中

    2)这里我就只是写在Myeclipse2017中的构建命令了。

      maven clean 是清除target目录下的之前打好的jar包或者是war包;

      maven install 将项目输出构件部署到本地仓库

      maven generate-sources 会根据pom配置去生成源代码格式的包

      maven build,页面如图,可以在Goals中输入命令进行执行,就相当于在CMD中输入的一样,不加mvn 如输入 compile 点击Run即可

    3)运行项目,Maven可以安装Toamct-maven插件直接运行,不用配置本地的Tomact,首先在pom.xml文件中添加如下内容

     1   <build>
     2     <finalName>SSHMavenModer</finalName>
     3     <plugins>
     4         <plugin>
     5             <groupId>org.apache.tomcat.maven</groupId>
     6             <artifactId>tomcat7-maven-plugin</artifactId>
     7             <version>2.0</version>
     8         </plugin>
     9     </plugins>
    10   </build>

    然后点击Run As ——>Maven Build ——>在Goals中输入【tomact7:run】然后打开浏览器访问即可。

    由于我个人电脑问题,老是报无法加载Tomact的错,所以我选择用本地  Tomact 

      首先右键Build Path ——>AddLibrary——>MyEclipse Service Library——> 然后选择自己的本地  Tomact  即可,

    运行时直接Run As ——>Myeclipse Service Application 即可。

    四:在pom.xml中添加jar包依赖

    在Maven项目中,jar包都是保存在本地仓库重复使用的,一个项目要想“调用”仓库里的jar包,就要对其进行配置,例如添加spring-core,应该是

    1 <dependency>
    2     <groupId>org.springframework</groupId>
    3     <artifactId>spring-core</artifactId>
    4     <version>5.0.0.RELEASE</version>
    5 </dependency>

    太多jar肯定不会全记住怎么写,所以要是想添加什么依赖,就直接百度,例如百度 maven spring-core repository  选择旁边的版本号点进去

     然后看到如图所示,复制到你自己的pom.xml中就可以了

    五:使用Maven创建web项目:

    直接创建的Maven项目的目录和直接用Myeclipse创建web项目还是有区别的,对比一下然后会发现只是放的位置变了,其他的都没变

    这样对比一下就很清晰了,左边是原本的SSH项目,右边是新建的Maven项目(我也是新学习的,可能建的不全面)java存放代码,resources存放配置文件,test存放测试代码与文件,页面效果放在下边的webapp中,当然,如果需要各种依赖,就得在pom.xml中进行配置。

    六:生命周期

      Maven有三个生命周期,clean生命周期,default生命周期、site生命周期,Maven的生命周期可以简单的理解为构建项目的步骤集合,只要执行后面的命令,那么前面的命令都会执行,不需要再重新去输入命令。

    1  Clean生命周期

    pre-clean 执行一些需要在clean之前完成的工作

    clean 移除所有上一次构建生成的文件

    post-clean 执行一些需要在clean之后立刻完成的工作

    2 Default生命周期

    validate

    generate-sources

    process-sources

    generate-resources

    process-resources 复制并处理资源文件,至目标目录,准备打包。

    compile 编译项目的源代码。

    process-classes

    generate-test-sources

    process-test-sources

    generate-test-resources

    process-test-resources 复制并处理资源文件,至目标测试目录。

    test-compile 编译测试源代码。

    process-test-classes

    test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。

    prepare-package

    package 接受编译好的代码,打包成可发布的格式,如 JAR 。

    pre-integration-test

    integration-test

    post-integration-test

    verify

    install 将包安装至本地仓库,以让其它项目依赖。

    deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

    3 Site生命周期

    pre-site 执行一些需要在生成站点文档之前完成的工作

    site 生成项目的站点文档

    post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备

    site-deploy 将生成的站点文档部署到特定的服务器上

    常用命令:

    maven 命令除了常用的几个,大部分经常记不住,整理一下,方便查询。

    maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下。

     

    -D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;

    -P 指定 Profile 配置,可以用于区分环境;

    -e 显示maven运行出错的信息;

    -o 离线执行命令,即不去远程仓库更新包;

    -X 显示maven允许的debug信息;

    -U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。

    常用maven命令

    1. 创建maven项目:mvn archetype:create 

      指定 group: -DgroupId=packageName 

      指定 artifact:-DartifactId=projectName

      创建web项目:-DarchetypeArtifactId=maven-archetype-webapp  

    2. 创建maven项目:mvn archetype:generate

    3. 验证项目是否正确:mvn validate

    4. maven 打包:mvn package

    5. 只打jar包:mvn jar:jar

    6. 生成源码jar包:mvn source:jar

    7. 产生应用需要的任何额外的源代码:mvn generate-sources

    8. 编译源代码: mvn compile

    9. 编译测试代码:mvn test-compile

    10. 运行测试:mvn test

    11. 运行检查:mvn verify

    12. 清理maven项目:mvn clean

    13. 生成eclipse项目:mvn eclipse:eclipse

    14. 清理eclipse配置:mvn eclipse:clean

    15. 生成idea项目:mvn idea:idea

    16. 安装项目到本地仓库:mvn install

    17. 发布项目到远程仓库:mvn:deploy

    18. 在集成测试可以运行的环境中处理和发布包:mvn integration-test

    19. 显示maven依赖树:mvn dependency:tree

    20. 显示maven依赖列表:mvn dependency:list

    21. 下载依赖包的源码:mvn dependency:sources

    22. 安装本地jar到本地仓库:mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path

    web项目相关命令

    1. 启动tomcat:mvn tomcat:run

    2. 启动jetty:mvn jetty:run

    3. 运行打包部署:mvn tomcat:deploy

    4. 撤销部署:mvn tomcat:undeploy

    5. 启动web应用:mvn tomcat:start

    6. 停止web应用:mvn tomcat:stop

    7. 重新部署:mvn tomcat:redeploy

    8. 部署展开的war文件:mvn war:exploded tomcat:exploded   

  • 相关阅读:
    html之colspan && rowspan讲解
    html之cellspacing && cellpadding讲解
    JavaScript之setcookie()讲解
    Tomcat漏洞说明与安全加固
    ActionScript基本语法讲解
    2014年03月09日攻击百度贴吧的XSS蠕虫源码
    Samy XSS Worm之源码讲解
    新浪微博之XSS蠕虫脚本源码讲解
    JavaScript之match()方法讲解
    JavaScript之substring()方法讲解
  • 原文地址:https://www.cnblogs.com/nullering/p/7967215.html
Copyright © 2011-2022 走看看