文章目录
- 🔥Maven聚合开发_聚合关系
- 🔥Maven聚合开发_继承关系
- 🔥Maven聚合案例_搭建父工程
🔥Maven聚合开发_聚合关系
之前我们在Idea中开发时会将项目的所有包放在同一个工程当中。
⭐ domain:定义实体类
⭐ dao:操作数据库
⭐ service:具体的业务逻辑,需要调用dao的方法。
⭐ controller:前后端交互,需要调用service的方法。
⭐ webapp:存放前端资源
假如我们现在写了两个项目分别是电商卖家端和电商买家端,两个项目都需要调用serive层查询订单的方法。原来的写法如下:
重复编码造成开发效率降低。
而使用maven后,我们可以把之前的项目按需拆分成一个个小项目,之后将小项目发布到仓库中,小项目之间也可以互相引用,并且在我们的项目中引入需要的小项目即可。
Maven将一个大项目分成一个个小项目开发,最后打包时会将这些小的项目打成一个完整的war包独立运行。
🔥Maven聚合开发_继承关系
Maven中的继承是针对于父工程和子工程。父工程定义的依赖和插件子工程可以直接使用。注意父工程类型一定为POM类型工程。
多继承
在Maven中对于继承采用的也是单继承,也就是说一个子项目只能有一个父项目。但我们可以在 dependencyManagement 配置多继承。写法如下:
<dependencyManagement>
<dependencies>
<!--父项目a-->
<dependency>
<groupId>com.it</groupId>
<artifactId>parent_a</artifactId>
<version>1.0-SNAPSHOT</version*>
<type>pom</type>
<!-- 引入父项目,scope的值为import-->
<scope>import</scope>
</dependency>
<!--父项目b-->
<dependency>
<groupId>com.it</groupId>
<artifactId>parent_b</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
🔥Maven聚合案例_搭建父工程
1.创建一个Maven工程,创建时不需要选择模板。
2.由于父工程是虚拟工程,不需要写逻辑代码,所以删除父工程的src目录。
3.由于父工程的依赖和插件子工程都能继承,可以将需要的依赖和插件都配置在父工程中。
<groupId>com.it</groupId>
<artifactId>maven_demo2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- jdbc驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-spec</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-mavenplugin</artifactId>
<version>2.1</version>
<configuration>
<port>8080</port>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding>
<server>tomcat7</server>
<systemProperties>
<java.util.logging.SimpleFormatter.format>%1$tH:%1$tM:%1$tS %2$s%n%4$s:
%5$s%6$s%n</java.util.logging.SimpleFormatter.format>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
IDEA中工程和模块有什么区别?
没什么区别,只是新工程会占据一个新窗口,我们一般写父工程时定义为新工程,
写子工程时定义为新模块。