ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Java Maven POM配置参考
[打印本页]
作者:
缠丝猫
时间:
2023-8-31 11:43
标题:
Java Maven POM配置参考
介绍
什么是POM?
POM代表“项目对象模型”。它是一个名为pom.XML的文件中保存的Maven项目的XML表示。
快速概览
这是一个直接位于POM项目元素下的元素列表。
请注意,modelVersion 包含4.0.0。这是目前唯一支持的POM版本,并且始终是必需的。
<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.0</modelVersion>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<dependencies>...</dependencies>
<parent>...</parent>
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties>
<build>...</build>
<reporting>...</reporting>
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors>
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<distributionManagement>...</distributionManagement>
<profiles>...</profiles>
</project>
复制代码
一个简单的配置示例
<?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.study</groupId>
<artifactId>kafka-meter</artifactId>
<version>1.0</version>
<description>Kafka plugin for JMeter</description>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<apache.jmeter.core>5.4.1</apache.jmeter.core>
<org.log4j>2.11.1</org.log4j>
<sf.kafka.api.core.version>1.18.2</sf.kafka.api.core.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>${apache.jmeter.core}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${org.log4j}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${org.log4j}</version>
</dependency>
<dependency>
<groupId>com.sf.kafka</groupId>
<artifactId>sf-kafka-api-core</artifactId>
<version>${sf.kafka.api.core.version}</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
</project>
复制代码
基础配置(The Basics)
POM包含关于项目的所有必要信息,以及构建过程中要使用的插件的配置。
<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.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
</project>
复制代码
Maven坐标(Coordinates)
上面定义的POM是Maven允许的最小配置。groupId:artifactId:version都是必需字段(不过,如果从父级继承groupId和version,则不需要显式定义它们-稍后将详细介绍继承)。这三个字段的作用非常像一个地址和时间戳。这标志着仓库中的一个特定位置,就像Maven项目的坐标系一样:
<ul>
groupId
: 这在一个组织或项目中通常是独一无二的。例如,所有的核心Maven工件都应该位于groupId org.apache.Maven下。groupId不一定使用点符号,例如junit项目。请注意,点标记的groupId不必与项目包含的包结构相对应。然而,这是一个很好的做法。当存储在仓库中时,该组的行为与操作系统中的Java包结构非常相似。点被操作系统特定的目录分隔符(如Unix中的“/”)所取代,后者成为Base仓库的相对目录结构。在给定的示例中, org.codehaus.mojo 组位于目录$M2_REPO/org/codehaus/mojo中。
artifactId
: artifactId通常是项目的名称。尽管groupId很重要,但组内的人很少在讨论中提到groupId(他们通常都是同一个ID,例如
MojoHaus
项目groupId:org.codehaus.mojo)。artifactId和groupId一起创建了一个Key,将这个项目与世界上其他所有项目区分开来(至少,它应该
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4