建立多个项目的集成项目MM-parent,工程建立方式与单独建立java、web项目基本一致,建立"maven-project"类型项目,在选择组装方式时选择pom。
选择"maven-model"为项目类型:
勾选创建一个简单项目,不用自己去设置,写模块名,然后选择父节点,下一步。
检查信息,点击完成,一个模块即建立好了。
建立好的模块的pom.xml中的内容如下:
可以看到,在xml中有一个parent节点,它表明了该项目的父项目。
按同样的方式分别建立:MM-model、MM-command、MM-persist、MM-weather、MM-webapp,其中MM-webapp的打包方式为war,其它为jar
建立好后,MM-parent的pom.xml变成了:
maven自动管理好了,项目及模块的对应关系,这是用modules和module来进行配置的。
至些一个内容为空的多模块架构的搭建就完成了。
MM-model模块主要放置对象模型,即BO类,将Weather放到里面,Weather类只是一个属性以及get和set方法,及重写了toString方法。
@Override
public String toString() {
return "cityid:" + cityid + ";days:" + days + ";temp_curr:" + temp_curr;
}
MM-weather模块,我们将其作为一个服务,它包括的功能有从气象服务接口查询天气情况,解析返回的Json数据、并返回Weather对象。
1、将WeatherParser.java、WeatherRetriever.java、WeatherService.java拷贝到MM-wather工程下。具体代码不再贴出来了,只在前面的基础上修改一些代码。
2、在src目录下增加log4j日志配置文件。
3、在pom.xml中增加slf4j、json、httpclient等依赖,由于服务中需要将天气信息解析成Weather对象,需要增加对MM-model的依赖,最终pom.xml配置及项目结构如下:
MM-webapp模块提供页面访问功能,提供serlet接口,接口从MM-weather服务获取数据,并使用velocity模版返回数据。
1、将WeatherFrmatter.java和SimpleServlet.java拷贝到weather包下。
2、将log4j.properties和weather.vm拷贝到resources目录下。
3、配置web.xml:
、4、在pom.xml中增加依赖关系:
原本依赖于MM-weather和MM-model,但MM-weather中已经依赖了MM-model,所以只需要依赖MM-weather就可以了。
org.mortbay.jetty是启动jetty服务的依赖。
5、在pom.xml增加jetty插件:
1、在mm-parent目录下运行mvn clean install
2、然后在mm-webapp目录下运行mvn jetty:run就可以在jetty上发布工程了。
3、访问http://localhost:8080/MM-webapp/SimpleServlet,能访问就正常了。(发布、测试是不是很简单。)