我使用的Eclipse的版本为Neon Release (4.6.0),新版的Eclipse已经集成了Maven所需的插件,所以不再需要手动安装m2eclipse插件了,这里就直接开始使用eclipse maven来创建第一个普通的java项目。
第一步:File->New->other...或者使用快捷键Ctrl+N,调出生成项目的选择界面,该界面如下图:
图 1.
第二步:在图 1.里的Wizards里搜索maven,也可以自己在下面的目录里查找,选择Maven Project:
图 2.
第三步:点击Next,弹出如下所示的界面,这个界面里可以选择我们该创建哪类项目(普通项目或者web项目),因为我们这里只需要创建普通java项目,所以选择Artifact Id为maven-archetype-quickstart的这一项,然后点击Next:
图 3.
第四步:之前都是配置Maven,接下来是我们具体的项目,所以步骤三点完Next后会出现下面的界面,这里,Group Id是项目组的唯一标识,Artifact Id是该项目组下的某一项目,Version是Maven的版本,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。在Artifact Id输入项目名,这个名会成为eclipse里的项目名,该项目下的src/main/java和src/test/java文件夹下会自动生成这里的Package,最后点击Finish,生成名为hellomaven的新项目。
注意:eclipse里的实际项目名称并不是Group Id的值,可以将Maven理解为是以项目组为管理基本单位的工具,多个项目同属于一个项目组,一个项目组也可以只有一个项目,可以有多个项目组。
图 4.
使用Maven创建完一个项目后,来看看hellomaven的目录结构。
图 5.
图 6.
这里打开hellomaven在系统中的目录,打开里面的.classpath,可以看到里面将src/main/java和src/test/java的级别都定义为'src',表示这两个都是该项目下的源文件夹,而其class文件的输出文件夹(即类路径)分别为target/classes和target/test-classes,但是这里在App.java里使用AppTest对象时,提示NoClassDefFoundError异常,这是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误,主要是因为src/main/java和src/test/java输出class文件的文件夹不一样,而这里有没有把target/test-classes的class文件引入到参考jar包里面去,所以执行src/main/java程序时,App.java里使用AppTest对象会通过编译,但不能运行(编译有`.java`文件即可,运行实际上是`.class`文件)。