本文中创建maven项目,不使用命令,完全用myeclipse实现,个人感觉这样新手更容易接受!
开发环境:myeclipse 8.6+maven(myeclipse自带插件)
可参考:http://blog.csdn.net/qq964166471/article/details/18708735完成配置(非myeclipse自带插件)。
多模块其实就是按照层级的管理构建,项目包含一个pom.xml文件和若干个模块,每个模块有一个单独的pom.xml文件,通过pom的依赖和继承关系来构建项目层次。
先看下项目依赖关系:父项目ssm有两个模块,分别是web和java项目
1.创建maven项目ssm
创建后修改pom文件,将项目的打包方式修改为pom方式,也可以在创建的时候Packaging选择为pom
注意:需要删除src等多余文件夹,因为聚合模块仅仅是帮助聚合其他模块构建的工具,其本身并没有实质的内容
2.maven项目ssm添加maven module
这边可以看到,创建此web项目时,选择先创建一个java项目,然后再为其添加web特性(之前试过直接创建web类型,但一直报错,可能是环境原因,有兴趣可以试试,第一步不要勾选create a simple project)。
完成后,我们看一下父项目ssm的pom文件,多了如下结构
<modules>
<module>ssm-web</module>
</modules>
创建Maven java项目步骤同上
3.为ssm-web添加web特性
在src/main下新建目录webapp
若将javaEE的jar添加的buildpath,可能会导致后面maven打包时,无法将javaEE的jar拷贝到项目lib目录下。
可看到添加web特性后,项目路径如下,很熟悉了吧
4.父项目ssm配置
右击项目,打开属性,将buildpath中的source文件夹给remove掉,并将output文件夹修改到web模块下web-inf/classes文件夹下
重点关注ssm-web项目的parent标签
<parent>
<artifactId>ssm</artifactId>
<groupId>com.tch</groupId>
<version>${project.version}</version>
</parent>
<artifactId>ssm-web</artifactId>
其配置的是该模块所属的父级项目,子模块的pom文件是继承字父级的pom文件的,所以在父级pom中定义的dependencies在子模块中可以直接引用,模块的属性也只需定义一个artifactId就可以了,groupId和version可以从父级继承,relativePath配置是父级pom.xml文件的相对路径,一般可以省略。
参考:
http://blog.csdn.net/qq964166471/article/details/18797879
http://blog.csdn.net/clementad/article/details/46592557(MyEclipse创建Maven webapp项目)