项目构建工具:Maven(下)

Maven

maven项目下多模块构建

使用maven提供的多模块构建的特性完成 maven 环境下多个模块项目的管理与构建

这里以四个模块为例来搭建项目

模块 maven_parent  ————父项目工程也就是基模块

模块 maven_dao	————数据库的访问层,如jdbc操作

模块 maven_service ————项目的业务层

模块 maven_controller ————控制层

创建父项目 maven_parent

创建空maven项目,就是不勾选模板直接创建的一个干净的项目工程

创建 maven_dao模块
在这里插入图片描述
选择模板的时候千万别选错了看清楚是maven的再选!!
在这里插入图片描述

创建maven_service模块

方法和创建dao一样

创建maven_controller模块

这次使用webapp模板,因为是个Web模块需要和浏览器打交道
在这里插入图片描述
因为webapp模板main目录下没有java包 所以我们需要手动创建,并标记为源码文件夹。如下:
在这里插入图片描述

修改模块配置

  1. 设置JDK版本
  2. 删除多余配置

以上设置修改方法在Maven(上)已经说过了,就不细说了。

设置模块之间的依赖

因为模块之间相互依赖,直白来说就是一个模块需要调用另一个模块的方法,所以我们需要配置依赖关系。
依赖关系为:controller—调用—service—调用—dao
配置依赖也很简单,例如service依赖dao,那么就在service的配置文件里加入dao模块的坐标,例如在service里加入坐标如下:

    <dependencies>

        <dependency>
            <artifactId>maven_dao</artifactId>
            <groupId>com.xxxx</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

依赖全部设置好之后,此时启动tomcat,大概率会报错,别慌,将每个模块包括父工程install一下:
在这里插入图片描述
此时,大概率还是install报错不成功,找了好长时间的原因,最后得出结论:需要先install一下父工程,再从小到大的顺序挨个install 。如先install Dao模块 再install sevice模块,最后install controller模块,因为有一层依赖关系,所以从小到大顺序。

此时启动 tomcat,你可能还会遇到 tomcat 启动了,但是请求访问的时候报错500,别慌,这是因为你配置的 servlet 依赖和 tomcat 里的 servlet 包冲突了,有两个版本不同的包了,此时,解决办法是在你的 servlet 依赖下加上作用域限制,让自己配置的servet依赖只在编译时生效,而运行时使用的就是 tomcat 的 servlet 包了。如下:

		<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <!--作用域限制-->
            <scope>provided</scope>
        </dependency>

改完再不行的话就把有这个依赖的这个模块clean一下再install一下应该就不会再有错了,毕竟重启可以解决99%问题哈哈哈哈。

Maven的打包操作

对于企业级项目,无论是进行本地测试,还是测试环境以及最终的项目上线,都会涉及到项目的打包操作。对于每个环境下的打包,对应的项目所需要的配置资源都会有所区别,实现打包的方式有多种,比如早期使用ant,或者通过idea自带的打包功能实现打包,但是当项目很大需要的外界配置很多时,此时打包的配置就会异常复杂,对于maven项目,我们可以通过 pom.xml配置的方式来实现打包时的环境选择,相比其他的打包工具,maven只需要通过简单的配置,就可以完成不同环境下项目的整体打包。

在这里插入图片描述

比如下面这样一个项目,项目中配置了不同环境下项目所需要的配置文件,这时候需要完成不同环境下的打包操作,此时通过修改pom.xml 如下:

1. 建立对应的目录结构

使用idea创建项目,目录结构可能会缺失,需要通过手动添加对应的目录,java和resources文件夹,并标记文件夹类型。

在这里插入图片描述

添加不同环境下的配置文件:开发环境,测试环境,正式环境。
在这里插入图片描述
2. 添加 Profile 配置

  <!--    配置三套环境,分别为dev(开发环境),product(正式环境),test(测试环境)-->
  <profiles>

<!--    dev环境-->
    <profile>
      <!--不同环境Profile的唯一id-->
      <id>dev</id>
      <properties>
      <!--此处<env>这个标签是自定义的,随便写, 最后会用标签里的值替换整个标签,这个标签里的值需要与项目目录下的环境文件夹名保持一致!!!-->
        <evn>dev</evn>
      </properties>
<!--      将该环境设置为默认活动环境-->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>

<!--    test环境-->
    <profile>
      <id>test</id>
      <properties>
        <evn>test</evn>
      </properties>
    </profile>

    <!--    product环境-->
    <profile>
      <id>product</id>
      <properties>
        <evn>product</evn>
      </properties>
    </profile>
  </profiles>

3. 设置指定环境资源文件夹下的资源文件可以被导出,也就是资源过滤的问题

  <build>
    <!--    让指定目录下的资源文件可以被导出-->
      <resources>
        <resource>
          <directory>src/main/resources/${evn}</directory>
          <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
          </includes>
          <filtering>false</filtering>
        </resource>

        <resource>
          <directory>src/main/java</directory>
          <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
          </includes>
          <filtering>false</filtering>
        </resource>
      </resources>

  </build>

4. 打包

打包的资源最终会在项目下的target目录下生成

最简单的打包方式:直接package
在这里插入图片描述
第二种打包方式:指定打包环境
在这里插入图片描述
至此,完结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值