1、创建空的Maven项目
File–>new–>project–>Maven Project...
2、next
3、finish
4、配置pom
4.0.0
com.nancy
DemoParent
0.0.1-SNAPSHOT
pom
DemoParent-Son1
DemoParentSon2
UTF-8
4.11
4.0.0.RELEASE
DemoParent
org.apache.maven.plugins
maven-compiler-plugin
2.3.2
1.6
1.6
org.apache.maven.plugins
maven-jar-plugin
2.5
true
true
junit
junit
${junit.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
commons-logging
commons-logging
1.2
5、创建maven子工程,在父工程上右键New..
6、next
7、next..我们这个子工程创建java项目
8、next
9、finish–>配置pom.xml (主要把多余部分删除,junit只要在父工程的pom配置就可以了)
4.0.0
com.nancy
DemoParent
0.0.1-SNAPSHOT
DemoParent-Son1
0.0.1-SNAPSHOT
10、创建web module
11、finish
12、此时可以看到,生成的web子工程有错。
Q1:项目忽然出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 的错误
Solve:点击项目右键>>Build Path>>Configure Build Path>>AddLibrary
点击next,选择一个自己配置好的tomcat服务
点击finish,然后apply and Close即可
Q2:在更改Dynamic Web Module的版本时(2.3->2.5),出现Cannot change version of project facet Dynamic web module
to 2.5错误
说明:我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5,在Project Facets里面修改Dynamic web module为2.5的时候就会出现Cannot change version of project facet Dynamic web module to 2.5
Solve:
1.更改项目的web.xml文件,把servlet改为2.5
(1)改之前:
Archetype Created Web Application
(2)改之后:
Archetype Created Web Application
2.打开Navigator视图:window>>Show View,选择Navigator;在Navigator视图下,打开项目下的.settings目录下的org.eclipse.jdt.core.prefs,把1.5全部改为1.6
3. 打开org.eclipse.wst.common.component,把project-version="1.5.0"改成project-version="1.6.0"
4. 打开org.eclipse.wst.common.project.facet.core.xml,把
到此,已经Dynamic web module 2.3修改成2.5版本
Q3:设置部署程序集(Web Deployment Assembly),部署时的文件发布路径
Solve:点击项目右键>>properties>> Deployment Assembly
13、此时,我们已经搭建好了整个项目,在父工程上右键RunAs>>Maven build...>>Goals:clean install
编译一下整个工程,可以发现已经成功了。此时的项目架构如下:
14、我们的pom文件如下:配置中有点说明下:把jar包自动拷贝到web-inf目录地下,这个搞web开发都懂是为什么了
4.0.0
com.nancy
DemoParent
0.0.1-SNAPSHOT
com.nancy
DemoParent-Son2
0.0.1-SNAPSHOT
war
DemoParent-Son2
maven-antrun-plugin
copy-lib-src-webapps
package
run
15、接下来,我们在DemoParent-Son1这个java的子工程中调用DemoParent-Son2这个web子工程。直接在DemoParent-Son1的pom文件中加上DemoParent-Son2的项目的引用(即坐标)即可。
com.nancy
DemoParent-Son2
0.0.1-SNAPSHOT
war
注意:要标明引入的子工程的打包方式。即type属性!