千峰商城-springboot项目实战08-创建Maven聚合工程
Maven聚合工程的父工程packing必须为pom。
父工程用于管理子工程,不进行业务实现,因此src目录可以选择性删除。
1.新建一个maven工程
2.修改父工程的pom.xml,设置打包方式为pom。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.qfedugroupId> <artifactId>maven-proartifactId> <version>1.0-SNAPSHOTversion> <packaging>pompackaging> <properties> <maven.compiler.source>8maven.compiler.source> <maven.compiler.target>8maven.compiler.target> properties> project>
删去src文件。
3.创建子工程
创建成功后,发现子工程commen的pom继承了父工程。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>maven-pro <groupId>com.qfedugroupId> <version>1.0-SNAPSHOTversion> parent> <modelVersion>4.0.0modelVersion> <artifactId>commonartifactId> <properties> <maven.compiler.source>8maven.compiler.source> <maven.compiler.target>8maven.compiler.target> properties> project>
而父工程的pom中,自动生成了一个
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.qfedugroupId> <artifactId>maven-proartifactId> <version>1.0-SNAPSHOTversion> <modules> <module>commonmodule> modules> <packaging>pompackaging> <properties> <maven.compiler.source>8maven.compiler.source> <maven.compiler.target>8maven.compiler.target> properties> project>
4.再创建一个spring子工程。
选择依赖。
发现springboot项目继承了spring-boot-starter-parent,而不是继承了父maven项目。
而父工程的pom中也没有引入新创建的springboot项目。
此时可以选择手动继承。(没必要)
删去spring-boot-starter-parent继承,将父工程maven继承拷贝上去。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion>在父工程的pom中声明model。<groupId>com.qfedugroupId> <artifactId>usersystemartifactId> <version>0.0.1-SNAPSHOTversion> <name>usersystemname> <description>Demo project for Spring Bootdescription> <properties> <java.version>1.8java.version> properties> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <optional>trueoptional> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-testartifactId> <scope>testscope> dependency> dependencies> <build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> exclude> excludes> configuration> plugin> plugins> build> project> maven-pro com.qfedu 1.0-SNAPSHOT
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.qfedugroupId> <artifactId>maven-proartifactId> <version>1.0-SNAPSHOTversion> <modules> <module>commonmodule>usersystem modules> <packaging>pompackaging> <properties> <maven.compiler.source>8maven.compiler.source> <maven.compiler.target>8maven.compiler.target> properties> project>
另一种方式:
在common的java下新建一个包 com.qfedu.beans。
在新建的包中新建一个类 Goods 。
在usersystem中新建一个service层,GoodsServiceImpl类。
在usersystem中添加依赖:
<dependency> <groupId>com.qfedugroupId> <artifactId>commonartifactId>
dependency>
打包common。
此时,在GoodsServiceImpl.java中,可以直接使用Goods!
GoodsServiceImpl.java:
package com.qfedu.service; import com.qfedu.beans.Goods; public class GoodsServiceImpl { private Goods goods; }