Maven的编译插件、Maven中配置Tomcat插件、本地Tomcat、jetty插件跑web项目、provided的使用、Maven中的继承(父子工程)、Maven中的聚合项目-day02

1. Maven的编译插件

  • 可以通过pom.xml配置插件来更改项目编译compile的jdk版本
    在这里插入图片描述
<build>
  	<plugins>
  		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
  	</plugins>
  </build>

2. 创建webMaven项目

  • 选择使用模板创建(后续步骤与普通javaMaven项目一致)
    在这里插入图片描述
  • 发现用模板创建的webMaven项目少了test测试、resources资源等文件夹,有需要可自行补充,然后标记成对应的文件夹即可
    在这里插入图片描述
  • intellij idea很强大,使用模板创建的webMaven项目,在src和main下补齐文件夹时会提示你,点击即可
    在这里插入图片描述

3. Maven中配置tomcat插件跑web项目

tomcat:run

  • 直接在运行配置中配置一个tomcat:run,默认跑的是tomcat 6.0
  • Tomcat6与jdk1.8不兼容,改成1.7即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tomcat7:run

  • 需要先在pom.xml配置tomcat7的插件,然后运行配置中配置tomcat7:run
    在这里插入图片描述
  • pom.xml中配置
	<plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <port>8081</port>
        <path>/</path>
        <uriEncoding>UTF-8</uriEncoding>
        <server>tomcat7</server>
      </configuration>
    </plugin>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本地tomcat运行

  • 配置了maven插件 cargo:start,运行前要install,否则报错!
    在这里插入图片描述
  • pom.xml中配置
<plugin>
   <groupId>org.codehaus.cargo</groupId>
   <artifactId>cargo-maven2-plugin</artifactId>
   <version>1.2.4</version>
   <configuration>
     <container>
       <containerId>tomcat7x</containerId>
       <home>D:\apache-tomcat-7.0.79</home>
     </container>
     <configuration>
       <type>existing</type>
       <home>D:\apache-tomcat-7.0.79</home>
       <properties>
         <cargo.servlet.port>9234</cargo.servlet.port>
       </properties>
     </configuration>
   </configuration>
 </plugin>

在这里插入图片描述

  • 也可以直接配置本地的Tomcat
    在这里插入图片描述
    在这里插入图片描述

4. Maven中配置jetty插件跑web项目

在这里插入图片描述

  • pom.xml中配置
<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>maven-jetty-plugin</artifactId>
  <version>6.1.26</version>
  <configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <webApp>${basedir}/target/Maven_javaWeb</webApp>
    <webAppConfig>
      <!--访问路径 根路径访问-->
      <contextPath>/</contextPath>
    </webAppConfig>
    <connectors>
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
        <port>8888</port>
        <headerBufferSize>16192</headerBufferSize>
      </connector>
    </connectors>
  </configuration>
</plugin>

在这里插入图片描述
在这里插入图片描述

5. 使用provided防止依赖冲突

  • 新建一个servlet
    在这里插入图片描述
  • 在web.xml中添加配置
    在这里插入图片描述
  • 做一个简单的跳转
    在这里插入图片描述
    在这里插入图片描述
  • 需要在pom.xml中配置servlet-api等gav,如果不配置servlet会报错,但是配置了运行时会报错(Tomcat容器中已经提供),所以要配置provided只让它在编译时有效,最后不进入打包
    在这里插入图片描述
    在这里插入图片描述
  • 查看war包中确实没有进入打包
    在这里插入图片描述
  • 如果不配置,默认scope就是compile,会进入打包
    在这里插入图片描述
    在这里插入图片描述

6. Maven中的继承(父子工程)

  • 先使用模板快速创建一个父工程MavenParent
  • 然后再在项目中创建子工程MavenChild模块,指定父工程
    在这里插入图片描述
  • 继承是为了消除重复,可以把很多相同的配置提取出来。例如:grouptId,version等
    在这里插入图片描述
  • 配置Parent的GAV,然后在父工程中添加的依赖,子工程可以直接继承使用
  • 例如在父工程中配置junit
    在这里插入图片描述
  • 子工程可以直接继承使用,而不需要像之前的依赖传递还要写依赖
    在这里插入图片描述
    在这里插入图片描述

父工程中版本号提取

  • 当父工程中定义的jar包越来越多,找起来可能会越来越麻烦,所以可以把版本号提取成一个属性集中管理。
  • 在父工程的pom.xml中配置一个properties标签,里面的标签自己自定义即可
    在这里插入图片描述

7. Maven中的聚合项目

  • 聚合一般是一个工程拆分成多个模块开发,每个模块是一个独立的工程,但是要是运行时必须把所有模块聚合到一起才是一个完整的工程,此时可以使用maven的聚合工程。
  • 例如电商项目中,包括商品模块、订单模块、用户模块等。就可以对不同的模块单独创建工程,最终在打包时,将不同的模块聚合到一起。
  • 例如同一个项目中的表现层、业务层、持久层,也可以分层创建不同的工程,最后打包运行时,再聚合到一起。
  • 聚合项目与上面的父子工程类似,就直接在父子工程上修改了

0. 父项目(以下模块均为父项目的子模块)

在这里插入图片描述

1. 写个model模块,专门存放实体类等

在这里插入图片描述
在这里插入图片描述

2. 写个dao模块,专门用于操作数据库

  • 现在先这样写,以后一般不用dao,用mybatis的mapper更好
    在这里插入图片描述
    在这里插入图片描述

3. 写个service模块,专门为业务服务

在这里插入图片描述
在这里插入图片描述

4. 写个background web模块,模拟一个后台页面开发

  • 前面都是普通的模块,这里是web模块,可随意使用前面的模块
    在这里插入图片描述
    在这里插入图片描述

5. 打包、安装到本地仓库

  • 直接对父项目install即可(它会按照父项目中的模块顺序打包安装到本地)
    在这里插入图片描述
  • model、dao、service中都有对应打包的jar
    在这里插入图片描述
  • 多个后台开发可以使用一套model、dao、service
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43414199/article/details/109095892
今日推荐