使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)

1、创建空的Maven项目

File–>new–>project–>Maven Project...

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第1张图片

2、next

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第2张图片

3、finish

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第3张图片

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
					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..

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第4张图片

6、next

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第5张图片

7、next..我们这个子工程创建java项目

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第6张图片

8、next

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第7张图片

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
  1. 与创建java module的1、2点一样;

  2. next

  3. 使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第8张图片

11、finish

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第9张图片

12、此时可以看到,生成的web子工程有错。

Q1:项目忽然出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 的错误

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第10张图片

Solve:点击项目右键>>Build Path>>Configure Build Path>>AddLibrary

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第11张图片

点击next,选择一个自己配置好的tomcat服务

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第12张图片

点击finish,然后apply and Close即可

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第13张图片

Q2:在更改Dynamic Web Module的版本时(2.3->2.5),出现Cannot change version of project facet Dynamic web module

to 2.5错误

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第14张图片

说明:我们用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

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第15张图片

3. 打开org.eclipse.wst.common.component,把project-version="1.5.0"改成project-version="1.6.0"

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第16张图片

4. 打开org.eclipse.wst.common.project.facet.core.xml,把改成,把改成

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第17张图片

到此,已经Dynamic web module 2.3修改成2.5版本

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第18张图片

Q3:设置部署程序集(Web Deployment Assembly),部署时的文件发布路径

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第19张图片

Solve:点击项目右键>>properties>> Deployment Assembly


13、此时,我们已经搭建好了整个项目,在父工程上右键RunAs>>Maven build...>>Goals:clean install

编译一下整个工程,可以发现已经成功了。此时的项目架构如下:

使用eclipse搭建maven多module项目(构建父子项目java子项目和web子项目)_第20张图片

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属性!


你可能感兴趣的:(Maven)