Maven工程创建及划分模块说明

maven搭建 网上已经有很多例子了 在这就不去过多说明了 下面贴个传送门 可以根据这个来创建项目.


用Maven创建第一个web项目 传送门:http://www.cnblogs.com/leiOOlei/p/3361633.html


由于版本的不同 多少会有差异. 创建maven项目中 可能会遇到的问题


index.jsp报错.   "The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path" . 原因很明确的告诉我们了. 

解决方法 有2种:  

1 在工程上右键 Build Path ->Configure Build Path打开.找到 libraries下 add library 添加server runtime -> tomcat 就行.




2 在pom.xml文件下 添加jar包支持.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

保存就好.


另外还有个报错的情况 报错信息找不到了. 大概就是说java版本的问题. 

这个问题是 project facets 里 创建成 web工程时  引用的java版本 和目前使用的版本不对应. 

解决方法是 把 project facets 里的java版本 改成和使用的版本一样的 或者把使用的版本改成project facets 里的版本 总之二选一 要改到相同版本就好.



目前新创建简单工程 问题大概就这些了.


划分模块:


参考地址:http://juvenshun.iteye.com/blog/305865?page=3#comments

里面很相信说明了具体原因和怎样使用. 

简单的Maven模块结构:

 

---- app-parent

             |-- pom.xml (pom)

             |

             |-- app-util

             |        |-- pom.xml (jar)

             |

             |-- app-dao

             |        |-- pom.xml (jar)

             |

             |-- app-service

             |        |-- pom.xml (jar)

             |

             |-- app-web

                      |-- pom.xml (war)   


模块依赖关系:

 

app-dao      --> app-util

app-service --> app-dao

app-web     --> app-service


其中要说到的是关于父的pom.xml中的问题 <properties>和 <dependencyManagement>的使用.



在 pom 中指明 dependency management 元素的方式 maven 结合项目继承来管理依赖。在多模块应用中,可能多个子项目会有共同的依赖。此时为了正确运行,必须让所有的子项目使用依赖项的同一版本。必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的成果。因此,应在顶层的 pom 中定义共同的依赖关系。

如: 在顶层 父pom.xml中 定义


	<properties>
		<runtime.servlet.version>3.1.0</runtime.servlet.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>${runtime.servlet.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

看代码可以知道 定义了 一个通用的版本
<runtime.servlet.version>3.1.0</runtime.servlet.version>
下面来引用 ,到后面维护 更改也方便统一维护了.


而在继承pom.xml(子项目)中. 我们只需要引用依赖就可以.


	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId> <!-- <version>3.1.0</version> -->
		</dependency>
	</dependencies>

顶层 pom 中的 dependencies 与 dependencyManagement 中的 dependencies 元素有一个重要的区别:
 
dependencyManagement 中的 dependencies 元素只表明依赖项版本的优先选择,并不影响项目的依赖项;而 dependencies 元素则影响项目的依赖项。

当 子的dependencies 元素中没有指明版本信息时, 顶层的dependencyManagement 中的 dependencies 元素才会起作用 被引用.


记住2个区别就好 一个为了多模块的依赖管理控制, 一个为了当前项目的依赖管理



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值