以前和一个做互联网的朋友聊天,问我有没有用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。最主要是在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的工作原理。