Maven日常笔记总结

说Maven之前,首先要说的是为什么要用Maven,因为我们不用Maven也可以正常的开发项目,然后我会介绍用Maven之后又会给我们带来什么样的开发体验

第一个问题:

作为Java程序员,一个项目中可能会因为功能需要而导入很多个jar包,有些jar包可能是自己创建的(自己项目中的相互依赖),有些是开源的jar包(例:数据库驱动包、spring、Hibernate、struts),每一个jar包可能都会因为功能升级而升级所对应的版本号,而且我们所引用的jar包还会因为自己的功能需要而引用一些jar包自己需要的包(间接依赖),这样就会导致我们的项目中同一个功能可能会依赖有很多不同版本的jar文件,当Java文件编译成为class文件的时候,到底选择某一功能的jar中哪一个版本的呢?

第二个问题:

一个团队合作开发一个项目,如何让自己写的这部分功能也能够让别人进行使用呢?难道要把自己写的这部分功能代码拷贝给别人?那如果要把我们的项目开源给别人使用呢?我们可以这么思考,我们是怎么使用spring、struts的呢,我们是通过引用这些开源框架的jar文件来进行加入框架的功能,基于这样的思考,我们是不是也应该把我们所写的功能打包成jar文件呢?是可以的,通过最基础的几条Java命令就可以将我们的一个类或是几个类封装成为一个jar文件提供给别人使用。但是针对一个庞大的系统,我们又该如何将我们所写的每一个类进行打包呢?手动来执行的话,是不是会很麻烦?

第三个问题:

再者就是我们的项目构建和项目部署,我们一般是怎么构建一个项目的呢?如何配置相关的classPath和编译输出目录呢?这些东西也许我们自己并没有做,我们创建一个项目,然后都是借助于eclipse或是IDEA直接生成的,是编辑器给我们自己配置好了,所以我们自己也许并不知道这些东西,但是如果你学习Java从记事本开始的话,使用javac java这些指令编译过java类,你对我所说的这些东西可能更容易理解。相信每一个学习过Java都知道Java语言是跨平台的,之所以跨平台是因为我们无论什么平台虚拟机执行的都是同一种语言,Java类编译后的class文件,既然是需要编译成为class文件,那我们之前的项目是使用什么编译的呢?也许不是太深入的可能认为是编辑器(eclipse)给我们做了,其实只是eclipse集成了编译插件Ant,最终的原理是Ant帮我们执行了javac classPath指令,将我们的Java类编译成了class文件并放在固定的输出目录。使用eclipse可以做到编译,但是我们不能因为eclipse能编译Java类,就在我们需要编译的环境里面安装一个eclipse吧?如果不使用eclise,那我们还可以使用Ant,这也是之前一直使用的工具。

你可能感兴趣的:(Maven日常笔记总结)