欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven初探

程序员文章站 2022-07-14 07:55:05
...
    以前和一个做互联网的朋友聊天,问我有没有用maven,我说没有,他们却是离不开maven。后来我想了一下,为什么我们这边不用呢?他们一大批人就在维护一个系统,面对性能要求,不断优化优化再优化是唯一目标。
    我这边一个人要管理多个项目,和多个用户交流,还要带一些技术人员的工作,所以用熟悉的、稳定的、简单的技术框架(而且是蛮老的技术),很多时候从基础项目复制就可以立即开始新项目了,这样我们的精力都集中在业务上,不需要技术的持续更新。
    可以说我们处在不同的生态圈下,适应不同的业务环境下,向着不同的重心在发展。


     当然,我对新技术还是很有兴趣的,所以花了一天时间研究了一下maven。最主要是在myeclipse里搭建了一下web项目,并运行编译配置、部署到tomcat上去。
   
     对于新技术,我最想总结出的是,它为什么出现,当初的发明者是出于什么目的搞这么一个东东的,是要解决什么问题?我基本上认为是:maven只是一个粘合剂,通过一个pom.xml的配置文件,把所有要用到的相关的包,相关的编译,打包,部署都整合在一起,是一个总指挥的工具。

     具体代码不贴了,网上一大堆,我这里注重理解。我在弄maven的web项目时,主要有这么几个过程与经历的问题。
1.符合maven的项目结构,特别是webapp放在src/main下面。其它的main,test源代码没什么特别的。
2.当然包含jdk与jave EE的引入,设置好web-root位置
3.重点是pom.xml文件,除了定义好自己这个项目外,我用到的重点包括两部分:一部分是依赖(或者是材料),这个好理解,总要引入其它的jar包吧,里面有一个依赖范围的概念。另一部分是插件(或者是工具),比如打war包的插件,部署到tomcat的工具。部署到tomcat是热部署,要先启动tomcat,给插件提供管理地址,提供用户与密码。这样前面打成war包,后面就扔到tomcat的webapps里面了。很方便。
4.pom中的插件最外层是build标签,说明是build过程中用的工具。
5.maven有那么多依赖,有那么多插件是现成的,其实是有一个远程仓库的,按名称坐标来取用。运行时会远程拿过来放在本地仓库中用。本地仓库有一个settings.xml配置。我开始配置tomcat的用户密码在这里,部署失败,总是404,后来放到pom中才成功。


    基本上弄一个项目,就有了概念了,确实在管理大应用时非常有效。到了这里,我非常关注plugin,于是又找到一个如何自己写plugin的贴子看了一下。

    1.编写Mojo。Mojo = Maven Old Java Object,需要继承AbstractMojo,并实现其execute方法。
    2.通过注解可以获取工程路径中的文件信息,那就可以用工具中的execute来处理这些文件了。或者处理源文件,或者处理结果goal。比如:
     /**
     * @parameter expression="${project.basedir}"
     * @required
     * @readonly
     */ 
    private File basedir;


   通过对一个plugin的开发,更能理解maven的工作原理。
相关标签: maven java