maven入门(3)

来源:互联网 发布:java array list 编辑:程序博客网 时间:2024/06/08 08:15

1. maven入门(1)里面提到过,我这里用的是eclipse-neon,maven3.9.这个版本的eclipse是自带maven的插件和maven的。所以,不要像网上说的再去下载什么插件了。
2. 也就是说在这个版本eclipse里面直接可以创建maven的项目。file->new->other->maven->maven project即可。然后就是想命令行一样输入包名之类。其他默认。还有一个需要选的就是是quick start 还是web项目,那个都可以,作为一个尝试。
这里创建项目的具体可以参考笔记:maven学习(上)- 基本入门用法 - 菩提树下的杨过 - 博客园
http://www.cnblogs.com/yjmyzz/p/3495762.html这是博客地址。
3. 项目上右击->Run As 就能看到很多Maven的选项,顾名思义,如何选择Maven install,等效于命令行执行mvn clean install,其它几项的含义一看便知,一般来讲Maven test 和 Maven install这二个基本上已经够用,如果还想定义自己的命令,比如 maven clean package,可以选择“6 Maven build...”,会弹出一个界面,如下图,在name输入框填写名称:maven-web-sample-package(名字可以随便写,只要方便自己记忆就行),Goals栏输入clean package
4. 实际使用中,发现eclipse与maven之间并非整合得天衣无缝,有时候eclipse中项目图标经常会莫名其妙的出现一些红叉,以下是一些个人经验:
a) 尝试先到Dos命令行窗口,用mvn clean compile(或install)之类的命令试下能否正常编译
b) 如果a) 步骤能正常编译,在回到eclipse中,项目右击->Maven-Update Project ,通常这样就能消除红叉
c) 有时候b)步骤操作完以后,仍然会有红色感叹号或红叉,但是eclipse编译、调试都OK,这就要具体问题具体分析了,可以尝试把Problems面板调出来,逐个分析
d) 以上3个步骤都尝试无效后,最后还可以尝试 Windows -> Preferences -> Validation -> Disable All 把所有验证都关掉
4,5此处参考:
http://www.cnblogs.com/yjmyzz/p/3495762.html
3. 1. 点击Run As就可以发现几个Maven的命令(eclipse里面):
  Maven Build:
  这个命令用于编译Maven工程,执行命令后会在target文件夹中的classes中生成对应的class文件。
  Maven Clean:
  删除target文件夹,即删除生成的package包以及class等文件。
  Maven Test:
  先自动进行编译,在运行所有的测试用例。
  Maven install:
  发布生成对应的package包。
 
  注意:
  留意上面的命令的作用,build和test都会生成相应的class文件。也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对类进行测试,会跑出java.class.notfound的错误。因为此时还没有编译生成class文件,如果有朋友发现这个问题注意一下就好了。(该部分只针对旧版本,新版本如maven3.3是可以自动编译的)
  只有使用了上面的两个命令后,才能针对某个类进行单元测试。
4. 
然后就是另一个很棘手的问题,eclipse里面引入maven项目。一般你在github上面下载的开源项目都是maven群项目。也就是一个大项目下面很多小项目,每个项目都有pom.xml。
这里导入的时候选择mvn existing project,路径选择最大项目,然后pom全选,其他默认。然后导入,会需要一段时间来下载jar包,然后就会看到一个parent项目和很多子项目并列在资源管理器里面。parent项目的目录结构是maven形式的,不是java project形式的。但是子项目和java project的目录同。如果你需要看源码或者使用源码的话,直接在子项目里面写程序即可。
这里有两点:
4.1. 首先,如果导入之后出现红色叹号,说明jar用问题,请用mvn配置文件换个本地仓库,重新开始导入。原来自己因为使用的是eclipse自带的maven,带入的时候下载jar包太慢,自己按了暂停,结果就是怎么都去不掉叹号,最后重新定义了一个本地仓库,就解决了之前红叉的问题。说明eclipse与maven并不能天衣无缝的结合在一起。有问题千万不要以为蛮干。也许程序本来就有问题。想替代方案。比如重启之类的。
4.2. 当然,每个人肯定想导入的时候只有一个parent项目,然后所有其他子项目都是parent的一个文件夹,而且都是按照javaproject排列的。这是有办法的。就是先导入parent,然后把子项目删掉,然后再在父项目里面按照java existing project导入各个子项目。即可。但是自己觉得太麻烦,就没有做。上面的导入可以满足我目前的需要了。如果你想的话,可以试试。具体可以参考stackoverflow,搜eclipse里面导入maven,也许不久之后会有很好的解决方案。


参考博客:
http://www.cnblogs.com/yjmyzz/p/3495762.html
http://m.blog.csdn.net/article/details?id=50316383
http://blog.csdn.net/maple980326/article/details/52104338
最后还有maven的官网
0 0
原创粉丝点击