关于maven的几个问题。

maven对于构建一个项目究竟有什么意义,只是依赖jar包?没有maven就不能构建项目了吗?
我在对某个工程执行了maven clean时,maven除了清空本地target以外还有没有别的操作?
在对某个工程执行了maven install时,是不是将自己的class文件打包成jar然后安装到到在本地Repository中?这个命令有没有从远端取jar?
ps:本人实在没有分数了,望各位大人大量。

    maven提供了很好的jar包管理方式。其实maven在做大项目的时候更能体现其优点,打个比方,一个大的系统拆分成好多子系统,各个子系统包含自己的jar包,互相之间也有重复的,最后在构建这个大的系统时通过人工管理jar是很麻烦的一件事。maven帮你管理可以有效的去除重复jar并且使用maven的mvn dependency:tree可以很方便的看到各个jar之间的依赖关系。   没有maven也可以构建项目,你可以使用 eclipse插件构建war或者使用ant脚本。当然maven除了管理jar还有其他作用,比如自动单元测试,管理项目版本(snapshot,beta,release。。。)

    maven clean清除了生成的class文件

    install是把打出的jar包安装到本地仓库,并不是从远端获取jar。

本人接触maven也才一年多,纯手打,希望可以帮到你

追问

谢谢你,我还有疑问需要请教

    jar就是由class打包而来的吧?

    那么既然clean已经清除了class文件,那么怎么又能由install部署本地呢?是不是在clean的时候就会先打包再清除?

    为什么每次更新代码的时候都要先clean 再install?更新代码的时候会自动下载新的pom吗?

追答

    项目的java文件最终会变成class文件打包进jar中。如果是web项目一般会打包成war,纯java项目打包成jar。

    maven有一个生命周期的概念。  你执行install命令,实际上maven会执行一系列生命周期的命令。比如compile(生成class文件),test。。。 So,你之前虽然clean掉了class文件,后面install的时候实际上又进行了一次编译过程。

    没太懂你的更新代码啥意思。。  先clean再install应该是防止文件冲突。 maven没有更新代码一说吧,一般是用svn和git更新代码啊

追问

是的,我就是用SVN更新代码,我想知道的是,我有两个地方用到了clean和install命令,一个一开始是我用SVN导入项目的时候,另外一个就是开发过程中更新代码的时候,为什么要这么做,如果是为了防止冲突的话,我想知道为什么这么做能够防止冲突?防止什么样的冲突呢?

追答

我感觉导入项目和开发过程中更新代码没有必要 clean和install!你得理解这俩命令是干嘛用的,clean是清空编译的class文件,注意只是class文件,跟源文件java没有关系。 install就是把你的项目编译成的jar安装在本地仓库,供你本地其他的项目或者拷贝给别人调用,仅此而已。 在执行install命令的时候,如果你之前没有编译过,maven会先执行 clean,compile,test,package等命令。 install也可以安装现成的jar到本地仓库。具体参考install -file命令。

再说说svn更新代码,svn更新的是 java源码,跟class和jar文件没有关系,明白了吗?

温馨提示:答案为网友推荐,仅供参考