由于maven的仓库老是忘,在这里做一下备忘录。
父工程和子工程的项目管理
以下案例是一个父工程和子工程之间的相互管理。
父工程:父工程用于管理所有的jar包和版本号。
子工程:子工程用于导入父工程中的所有jar包。
这是一个springMVC和mybatis学习的一个pom.xml文件
<?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.0</modelVersion>
<groupId>com.ydlclass</groupId>
<artifactId>ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>Mybatis-01</module>
<module>spring-mvc</module>
</modules>
<!-- 如果该项目是javaweb项目打包方式要改成war包-->
<packaging>pom</packaging>
<!-- 父模块用于约束版本信息 -->
<properties>
<!-- 用于改变编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<junit.version>4.13.1</junit.version>
<mybatis.version>3.5.7</mybatis.version>
<mysql-connector-java.version>8.0.26</mysql-connector-java.version>
<lombok.version>1.18.22</lombok.version>
<logback.version>1.2.6</logback.version>
<servlet-api.version>4.0.1</servlet-api.version>
<springframework-version>5.2.18.RELEASE</springframework-version>
</properties>
<!--编译插件,bulid部分每个项目都要有-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<!--suppress UnresolvedMavenProperty -->
<target>
${mavem.compiler.target}
</target>
<!--suppress UnresolvedMavenProperty -->
<source>${mavem.compiler.source}</source>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<!-- 用于依赖管理要用下面这个标签-->
<dependencyManagement>
<!-- 导入依赖-->
<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- mybatis 核心 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- 数据库确定 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- 一个springmvc的依赖会自动传递spring的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework-version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
下面是一个springMVC用于引入jar包pom.xml文件
<?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>ssm</artifactId>
<groupId>com.ydlclass</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-mvc</artifactId>
<packaging>war</packaging>
<!-- 构建插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<!--suppress UnresolvedMavenProperty -->
<target>
${mavem.compiler.target}
</target>
<!--suppress UnresolvedMavenProperty -->
<source>${mavem.compiler.source}</source>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
</dependencies>
</project>
如果子项目中已经引入了父项目中的jar包在父项目中有怎么一个效果。
对于父工程中,如果关系错乱,我们可以在父工程的pom.xml文件中进行编辑,恢复正确的父
子关系
maven的一些常见报错
Error:(14,3) java: 编码UTF-8的不可映射字符
如图,当我点击install的时候maven莫名其妙跳到其他的页面并且报错。
原因:
在我百度之后发现原因是在install之前maven会对本地代码进行一个什么test,所以我们只要把这个test关闭掉就可以了。
解决方法:
把对应项目的test关闭即可。