maven工程实战(1)

以前都是碎片化地学习maven,最近才开始系统地学习。好吧,那就一点一点地开始做吧,学习还不都是为了在项目中应用,那就从做一个项目开始吧。

前提是已经安装了maven。我本地的jdk版本是7。

首先看一下整个项目工程的结构。
这里写图片描述
从图片中可以很清晰地看出各个模块的依赖关系。

好了,开始吧。
1、eclipse默认自带maven插件,就不用安装了。
2、配置maven仓库。
把setting.xml文件复制到m2目录下,并配置本地仓库,修改localRepository标签即可。<localRepository>D:\maven\repo</localRepository>
然后在eclipse中做相应的配置。
这里写图片描述

配置好了,下面就开始创建工程啦!

因为我们项目中有6个模块,为了方便构建及共用相同的配置,我们需要建一个父模块把6个模块都包含进去。
1、创建父模块
空白处右键 New ->Other…
这里写图片描述
Next
这里写图片描述
Next
这里写图片描述
注意这里选择pom类型。Finish。第一次创建工程会下载maven插件,需要给它一点时间。

完成后,删掉src目录,我们只要一个pom.xml就够了。
这里写图片描述

设置一下项目编码
这里写图片描述

2、接下来是创建6个子工程了。
首先我们来创建dao模块。
test-parent->右键->New->Other->Maven Module->Module Name:test-dao ->Next->选择maven-archetype-quickstart->Next->修改Package:com.rice.test.dao->Finish.

然后用相同的方式创建util模块.

2个子模块创建完成后,会发现test-parent的pom文件多了这么一个代码,

    <modules>
        <module>test-dao</module>
        <module>test-util</module>
    </modules>
这说明test-parent有2个子模块。

这时因为子模块的<groupId>com.rice.test</groupId><version>0.0.1-SNAPSHOT</version>跟父模块的groupId/version重复了,所以我们要把它删除掉。
这里写图片描述

删完了后,发现problems还是有警告
这里写图片描述

是编译环境的jdk的版本问题,我们修改一下就好了。
这里写图片描述这里写图片描述

好了,接下来该到创建service模块了。跟dao模块一样,开始创建吧!
创建完成后,删除pom里面的groupId和version,然后修改jdk和编译环境版本为1.7。

这里的service模块跟前面2个模块有点不一样的地方是,它要依赖前面2个子模块,所以要在pom文件中加入

<dependency>
      <groupId>com.rice.test</groupId>
      <artifactId>test-dao</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.rice.test</groupId>
      <artifactId>test-util</artifactId>
      <version>0.0.1-SNAPSHOT</version>
</dependency>


这里写图片描述

加入后发现maven依赖包中多了2个项目
这里写图片描述

接下来,就该创建顶层的portal模块了。跟前面的模块创建方式差不多是一样的。唯一不同的地方是在选择类型的时候,需要选择maven-archetype-webapp,因为我们需要创建的是一个web项目。创建完成后,删除groupId和version,修改jdk和编译环境版本,添加对service的依赖。

根据依赖的传递性,这时会发现test-portal模块的引用项目里把test-dao和test-util也引进来了。
这里写图片描述

接下来再以相同的方式创建另外2个web模块,console和api。

到此。我们的所有模块都创建完成了,是不是大功告成了呢?是的!
但是!我们可以做得更优雅!哈哈!

看看怎么做得更好吧。现在我们的所有子模块的pom里面都有这么一段代码

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
</dependency>

这些共用的东西,我们是不是可以抽到parent里去呢。just do it 。
把下面这段

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
</dependencies>

添加到test-parent的pom中,再删掉6个子模块对应的junit dependency 。我们再加入日志的依赖,然后自定义一下统一的版本。
这里写图片描述

接下来,我们就看看怎么在页面把hello world显示出来。

我打开test-portal,看了一下,这并不是web工程的目录呀,蒙B了。别急,设置一下就好了。
这里写图片描述

设置完成后,会发现自动生成了一个WebContent目录。
这里写图片描述
这个目录是没有用的,删掉。我们使用webapp目录就好了。然后设置一下部署目录。
这里写图片描述
这里写图片描述

接着,先设置一下tomcat的部署目录,eclipse的默认部署目录是在workspace下的,我们要设置它部署在tomcat目录下。
这里写图片描述
上面灰色的地方默认是选择第一个的并且是不能更改的,首先要先把tomcat的webapps下的项目先全部删掉,然后clean一下,就可以设置了。

接着,把test-portal添加到tomcat,然后启动,访问http://localhost:8080/test-portal/ 看到index.jsp里面的hello world出来了。哈哈好高兴!!

至此,整个工程就初步搭起来啦!!下一篇研究一下模块与模块之间的相互集成调用,从web页面到底层的dao的调用,及项目工程的发布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值