pom.xml 配置

  pom.xml 文件是 Maven 的配置文件。
  用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等

  根标签是<project>

基本配置

头信息

  这一部分是最外层的根标签以及命名空间和xsd文件的引入

<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">
</project>

第一部分:固定部分

  这一部分主要是 Maven 工程的基本信息

<project ……>
	<!-- 声明项目应该遵循那个 POM 模型版本 -->
	<modelVersion>4.0.0</modelVersion>
	<!-- 组名,公司或者组织的唯一标识 -->
	<groupId>youka</groupId>
	<!-- 项目名 -->
	<artifactId>Spring</artifactId>
	<!-- 版本 -->
	<version>0.0.1-SNAPSHOT</version>
	<!-- 打包类型 -->
	<packaging>war</packaging>
	
	<!-- 生成 Maven 文档时会使用的标签 -->
	<name>Spring Maven Webapp</name>
	<url>http://maven.apache.org</url>
</project>
字段 描述
modelVersion 声明项目描述符遵循哪一个POM模型版本。
这个基本不会修改,但是仍然是必不可少的
groupId 组id,公司或者组织的唯一标识
artifactId 项目id,在groupId中依靠artifactId区分出不同的项目
version 版本号
packaging 打包类型,可取值:jar,war,pom 等等

   上面列出的5个是比较重要的,另外还有像 name 和 url 这两个标签的作用和注释差不多,是一些描述性的东西,是 Maven 产生的文档会用的,了解即可。

自定义属性

  在第一部分和第二部分之间,有时候会用到一个自定义属性,自定义属性类似于 Java 中定义成员变量,其目的主要是维护时修改版本方便,只需要统一在这里修改即可,不需要一个个翻找依赖,在使用时,用${标签名}的形式使用该标签的值

<project……>
	...
	<!-- 自定义属性 -->
	<properties>
		<!-- 标签名是key,内容是value,使用时用key.value获取 -->
	    <spring.version>4.3.11.RELEASE</spring.version>
	    <mysql.version>8.0.20</mysql.version>
	</properties>
	...
</project>

第二部分:依赖

   重点掌握,最基础的要求

<project...>
	...
	<properties>
	    <spring.version>4.3.11.RELEASE</spring.version>
    </properties>
	<dependencies>
	    <dependency>
	        <groupId>mysql</groupId>
	        <artifactId>mysql-connector-java</artifactId>
	        <version>8.0.20</version>
	    </dependency>    
	    <dependency>
	         <groupId>org.springframework</groupId>
	         <artifactId>spring-jdbc</artifactId>
	        <version>${spring.version}</version>
	    </dependency>    
	</dependencies>
	...
</project>

  第二个依赖引入时,在 version 标签处使用的就是自定义属性名

字段 说明
groupId 依赖项的组织名
artifactId 依赖项的子项目名
version 依赖项的版本
scope 依赖项的适用范围 ,表示在构建整个Maven工程的那个阶段或者那个范围可以被使用,它的值包括compile,provided,runtime,test,system,exclusions
type 依赖类型一般省略,默认类型是jar,其他还有jar,war,ejb-client和test-jar
optional 可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。

  常用的依赖包

第三部分:构建

  主要是插件的配置等

<project...>
	...
	<build>
	    <finalName></finalName>
	    <plugins>
	    	<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<!-- 配置插件信息 -->
				<configuration>
					<!-- 代码是在  Jdk1.8 上编辑的-->
					<source>1.8</source>
					<!-- 代码应该运行在 Jdk1.8 上 -->
					<target>1.8</target>
					<encoding>UTF-8<encoding>
				</configuration>
			</plugin>
			<plugin>
				<!-- 定位 -->
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
				<version>9.3.7.v20160115</version>
				<configuration>
					<!-- http 端口号 -->
					<httpConnector>
						<port>8081</port>
					</httpConnector>
					<webApp>
						<!-- 工程名 -->
						<contextPath>/${project.artifactId}</contextPath>
					</webApp>
				</configuration>
			</plugin>
	    </plugins>
	</build>
	...
</project>
字段 描述
finalName 工程在打包时的名字,如果不写,默认名字是 groupId+artifactId+version
plugins 和 dependencies 元素一样,内部可以包含多个 plugin 元素
configuration 配置插件具体信息

  配置 jetty 的时候,配置 contextPath 表示访问时的工程名,如果不配置,在访问的时候,默认是不使用工程名的,但是一般是会需要配置工程名的。
  在 contextPath 中的${project.artifactId} 表示的是 project 标签下的 aritifactId 标签的值,也就是就是我们在第一部分中配置的 <artifactId>Spring</artifactId>的值 Spring

jetty 静态文件锁定问题

猜你喜欢

转载自blog.csdn.net/qq_40395874/article/details/114297796
今日推荐