Maven 入门实战(2)--POM

这篇具有很好参考价值的文章主要介绍了Maven 入门实战(2)--POM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,它是一个 XML 文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。执行任务或目标时,Maven 会在当前目录中查找并读取 POM,获取所需的配置信息,然后执行目标。

1、基本配置

<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.mycompany</groupId>
    <artifactId>myproject</artifactId>
    <version>1.0.0</version>
    <description>项目描述</description>
    <name>项目名称</name>
    <url>https://www.mycompany.com/myproject</url>
    <packaging>jar</packaging>
    <inceptionYear>2023</inceptionYear>
</project>

 配置说明:

节点 说明
project 工程的根标签
modelVersion 模型版本,设置为:4.0.0;必需
groupId 工程组标识,它在一个组织或者项目中通常是唯一的;必需
artifactId 工程标识,它通常是工程的名称;必需
version 工程版本号;必需
description 工程描述
name 工程名称
url 工程主页
packaging 打包类型,常见类型为:pom、jar、war、ear;默认为:jar
inceptionYear 项目创建年份,4 位数字;版权信息生成时需使用这个配置

2、parent

所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM),父 POM 包含了一些可以被继承的默认设置。

<parent>
    <groupId>com.mycompany</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0</version>
    <relativePath/>
</parent>

配置说明:

节点 说明
groupId 父工程组标识;必需
artifactId 父工程标识;必需
version 父工程版本号;必需
relativePath 父工程 pom.xml 文件的相对路径;默认值为:../pom.xml。Maven 首先在当前工程的目录寻找父工程的 pom,其次在 relativePath,然后在本地仓库,最后在远程仓库寻找父项目的 pom

3、prerequisites

prerequisites 元素用于描述构建该项目的先决条件。

<prerequisites>
    <maven>3.8.0</maven>
</prerequisites>

配置说明:

节点 说明
maven 构建项目或使用该插件所需要的 Maven 最低版本

4、issueManagement

issueManagement 元素用于描述项目的问题管理系统。

<issueManagement>
    <system>jira</system>
    <url>http://10.49.196.10:8080/banseon</url>
</issueManagement>

配置说明:

节点 说明
system 问题系统名称
url 问题系统 URL

5、ciManagement

ciManagement 元素用于描述项目的持续集成系统。

<ciManagement>
    <system></system>
    <url></url>
    <notifiers>
        <notifier>
            <type></type>
            <sendOnError>true</sendOnError>
            <sendOnFailure>true</sendOnFailure>
            <sendOnSuccess>true</sendOnSuccess>
            <sendOnWarning>true</sendOnWarning>
            <address></address>
            <configuration/>
        </notifier>
    </notifiers>
</ciManagement>

配置说明:

节点 说明
system 集成系统名称
url 集成系统 URL
notifiers 构建完成时,需通知的人员列表,包括被通知者信息和通知条件
notifiers/notifier 一个被通知人员配置信息
notifiers/notifier/type 使用何种方法通知
notifiers/notifier/sendOnError 发生错误时是否通知
notifiers/notifier/sendOnFailure 构建失败时是否通知
notifiers/notifier/sendOnSuccess 构建成功时是否通知
notifiers/notifier/sendOnWarning 发生警告时是否通知
notifiers/notifier/address 通知发送到哪里,该配置已过期
notifiers/notifier/configuration 扩展配置项

6、mailingLists

mailingLists 元素用于描述项目相关的邮件信息。

<mailingLists>
    <mailingList>
        <name>jack</name>
        <post>123456@qq.com</post>
        <subscribe>123456@qq.com</subscribe>
        <unsubscribe>123456@qq.com</unsubscribe>
        <archive></archive>
    </mailingList>
</mailingLists>

配置说明:

节点 说明
mailingList 一个邮件信息
mailingList/name 邮件名称
mailingList/post 用于接受外部信息的邮件地址或链接;如果是邮件地址,那么在创建文档时将自动创建一个 mailto 链接。
mailingList/subscribe 用于订阅的邮件地址或链接;如果是邮件地址,那么在创建文档时将自动创建一个 mailto 链接。
mailingList/unsubscribe 用于取消订阅的邮件地址或链接;如果是邮件地址,那么在创建文档时将自动创建一个 mailto 链接。
mailingList/archive 可以浏览邮件信息的 URL

7、licenses

licenses 元素用于列出该项目的 license 列表。

<licenses>
    <license>
        <name>The Apache Software License, Version 2.0</name>
        <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
        <comments></comments>
    </license>
</licenses>

配置说明:

节点 说明
license 表示一个 license
name license 的名称
url license 页面 URL
distribution 项目的分发方式:repo,可以从 Maven 仓库下载;manual 用户须手动下载和安装依赖
comments license 的补充信息

8、developers

developers 用于列出项目开发者。

<developers>
    <developer>
        <id>123</id>
        <name>abc</name>
        <email>123456789@qq.com</email>
        <url>https://www.abc.com</url>
        <roles>
            <role>Project Manager</role>
        </roles>
        <organization>xyz</organization>
        <organizationUrl>https://www.xyz.com</organizationUrl>
        <properties>
            <dept>aa</dept>
        </properties>
        <timezone>8</timezone>
    </developer>
</developers>

配置说明:

节点 说明
developer 表示一个开发者
id 项目开发者的 id
name 项目开发者的姓名
email 项目开发者的 email
url 项目开发者的个人主页
roles、role 项目开发者在项目中扮演的角色
organization 项目开发者所属组织
organizationUrl 项目开发者所属组织的 URL
properties 项目开发者属性
timezone 项目开发者所在时区,-11 到 12 范围内的整数

9、contributors

contributors 元素描述尚未成为提交者的项目贡献者。

<contributors>
    <contributor>
        <name>abc</name>
        <email>123456789@qq.com</email>
        <url>https://www.abc.com</url>
        <roles>
            <role>Project Tester</role>
        </roles>
        <organization>xyz</organization>
        <organizationUrl>https://www.xyz.com</organizationUrl>
        <properties>
            <dept>aa</dept>
        </properties>
        <timezone>8</timezone>
    </contributor>
</contributors>

配置说明:

节点 说明
contributor 表示一个贡献者
name 贡献者的姓名
email 贡献者的 email
url 贡献者的个人主页
roles、role 贡献者在项目中扮演的角色
organization 贡献者所属组织
organizationUrl 贡献者所属组织的 URL
properties 贡献者属性
timezone 贡献者所在时区,-11 到 12 范围内的整数

10、scm

SCM(Source Control Management)元素用于配置项目的代码库。

<scm>
    <url>https://github.com/abc/abc-common</url>
    <connection>https://github.com/abc/abc-common.git</connection>
    <developerConnection>https://github.com/abc/abc-common-dev.git</developerConnection>
    <tag></tag>
</scm>

配置说明:

节点 说明
url 可浏览代码库的 URL
connection 可以连接到代码库的 URL,该连接只读
developerConnection 开发者连接到代码库的 URL,该连接可写
tag 当前代码的标签,在开发阶段默认为 HEAD

11、organization

organization 元素用于描述项目所属组织。

节点 说明
name 组织的全名
url 组织的主页 URL

12、properties

properties 用于定义键值对。

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>5.2.24.RELEASE</spring.version>
</properties>

13、dependencies

dependencies 用于定义项目的依赖。

<dependencies>
    <dependency>
        <groupId>com.abc</groupId>
        <artifactId>commons</artifactId>
        <version>1.0.0</version>
        <type>jar</type>
        <classifier></classifier>
        <scope>compile</scope>
        <!--systemPath></systemPath-->
        <exclusions>
            <exclusion>
                <groupId>com.xyz</groupId>
                <artifactId>xxx</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <optional>true</optional>
</dependencies>

配置说明:

节点 说明
dependency 表示一个依赖
groupId 依赖工程组标识
artifactId 依赖工程标识
version 依赖工程版本
type 依赖类型,默认为 jar;它通常表示依赖文件的扩展名
classifier 依赖的分类器,它可以区分属于同一个 POM,但不同构建方式生成的构件。分类器名被附加到文件名的版本号后面。
scope 依赖范围,可以为:compile、test、runtime、provided、system;默认为:compile
systemPath 仅供 system 范围使用。该元素为依赖指定了文件系统上的路径,需要绝对路径而不是相对路径。
exclusions 排除该依赖工程不需要的依赖
exclusion 表示一个排除的依赖。groupId:排除的依赖工程组标识;artifactId:排除的依赖工程标识,可以用 * 表示任意个字符
optional 可选依赖,它阻断依赖的传递性。对于该依赖的依赖将不会被引入。

14、dependencyManagement

dependencyManagement 元素用于对依赖进行管理;这部分的依赖信息不会被立即解析,而是当在 dependencies 中声明一个依赖(groupId 和 artifactId 必须),如果 groupId 和 artifactId 以外的一些信息没有描述,则通过 groupId 和 artifactId 匹配到这里的依赖,并使用这里的依赖信息。

<dependencyManagement>
    <dependencies>
        <dependency>
            ...
        </dependency>
    </dependencies>
</dependencyManagement>

15、modules

<modules>
    <module>module-a</module>
    <module>module-b</module>
    <module>module-c</module>
</modules>

modules 元素用于列出项目的模块(子项目)。

配置说明:

节点 说明
module 一个模块,元素值为指向该模块的相对路径

16、reporting

reporting 元素用于生成报表,当执行"mvn site",报表就会按照配置生成。

<reporting>
    <excludeDefaults>false</excludeDefaults>
    <outputDirectory>${project.build.directory}/site</outputDirectory>
    <plugins>
        <plugin>
            <groupId>com.abc</groupId>
            <artifactId>xyz</artifactId>
            <version>1.0.0</version>
            <inherited>true</inherited>
            <configuration></configuration>
            <reportSets>
                <reportSet>
                    <id>123</id>
                    <configuration/>
                    <inherited>true</inherited>
                    <reports>
                        <report></report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

配置说明:

节点 说明
excludeDefaults 是否排除默认报表,默认:false
outputDirectory 报表生成目录,默认:${project.build.directory}/site
plugins 报表插件列表
plugins/plugin 一个报表插件
plugins/plugin/groupId 插件 groupId
plugins/plugin/artifactId 插件 artifactId
plugins/plugin/version 插件版本
plugins/plugin/inherited 配置是否传播到子 POM
plugins/plugin/configuration 插件配置
plugins/plugin/reportSets 报表规范列表,每个规范(可能)具有不同的配置,一个规范(报表集)对应一个执行目标
plugins/plugin/reportSets/reportSet 一个报表规范
plugins/plugin/reportSets/reportSet/id 报表规范唯一标识符
plugins/plugin/reportSets/reportSet/configuration 报表规范配置
plugins/plugin/reportSets/reportSet/inherited 配置是否传播到子 POM
plugins/plugin/reportSets/reportSet/reports 该规范使用到的报表列表
plugins/plugin/reportSets/reportSet/reports/report 一个报表

17、build

build 元素用于描述项目如何构建。

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory></scriptSourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <outputDirectory>target/classes</outputDirectory>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <directory>target</directory>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <defaultGoal>clean package</defaultGoal>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>*.xml</include>
            </includes>
            <excludes>
                <exclude>*.abc</exclude>
            </excludes>
            <targetPath></targetPath>
            <filtering>false</filtering>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <includes>
                <include>*.xml</include>
            </includes>
            <excludes>
                <exclude>*.abc</exclude>
            </excludes>
            <targetPath></targetPath>
            <filtering>false</filtering>
        </testResource>
    </testResources>
    <filters>
        <filter></filter>
    </filters>
    <extensions>
        <extension>
            <groupId>com.abc</groupId>
            <artifactId>my-extension</artifactId>
            <version>1.0.0</version>
        </extension>
    </extensions>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <extensions>false</extensions>
            <executions>
                <execution>
                    <id>attach-source</id>
                    <phase></phase>
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                    <inherited>true</inherited>
                    <configuration></configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                </dependency>
            </dependencies>
            <inherited>true</inherited>
            <configuration></configuration>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>

        </plugins>
    </pluginManagement>
</build>

配置说明:

节点 说明
sourceDirectory 源码目录,该路径是相对于 pom.xml 的相对路径。
scriptSourceDirectory 脚本源码目录,该目录下的内容会被拷贝到输出目录;该路径是相对于 pom.xml 的相对路径。
testSourceDirectory 测试源码目录,该路径是相对于 pom.xml 的相对路径。
outputDirectory 编译输出目录,该路径是相对于 pom.xml 的相对路径。
testOutputDirectory 测试代码编译输出目录,该路径是相对于 pom.xml 的相对路径。
directory 构建产生的所有文件存放目录,该路径是相对于 pom.xml 的相对路径。
finalName 生成构件的文件名,默认值是 ${artifactId}-${version}
defaultGoal 默认的目标,配置该选项,可以运行简化的命令:mvn 来构建项目。
resources 资源信息,如:项目相关的配置文件
resources/resource 一个资源信息配置
resources/resource/directory 资源目录
resources/resource/directory/includes 包含的文件列表
resources/resource/directory/includes/include 一个包含文件的配置,如:**/*.xml
resources/resource/directory/excludes 排除的文件列表
resources/resource/directory/excludes/exclude 一个排除文件的配置,如:**/*.abc
resources/resource/targetPath 资源的目标目录,该路径是相对于 ${project.build.outputDirectory} 的相对路径
resources/resource/filtering 是否使用参数值代替参数名,参数值取自 properties 元素或者 filters 元素配置的文件里的属性;默认:false
testResources 资源信息,如:测试相关的配置文件
testResources/testResource 一个测试资源信息配置
testResources/testResource/directory 测试资源目录
testResources/testResource/directory/includes 包含的文件列表
testResources/testResource/directory/includes/include 一个包含文件的配置,如:**/*.xml
testResources/testResource/directory/excludes 排除的文件列表
testResources/testResource/directory/excludes/exclude 一个排除文件的配置,如:**/*.abc
testResources/testResource/targetPath 资源的目标目录,该路径是相对于 ${project.build.testOutputDirectory} 的相对路径
testResources/testResource/filtering 是否使用参数值代替参数名,参数值取自 properties 元素或者 filters 元素配置的文件里的属性;默认:false
filters 当 filtering 为 true 时,使用到的属性文件列表
filters/filter 一个属性文件
extensions 项目使用到的构建扩展
extensions/extension 一个构建扩展
extensions/extension/groupId 构建扩展 groupId
extensions/extension/artifactId 构建扩展 artifactId
extensions/extension/version 构建扩展版本
plugins 插件列表
plugins/plugin 一个插件
plugins/plugin/groupId 插件 groupId
plugins/plugin/artifactId 插件 artifactId
plugins/plugin/version 插件版本
plugins/plugin/extensions 是否从该插件加载 Maven 扩展(比如打包和类型处理程序),出于性能考虑,应该只在必要时启用该功能。默认:false
plugins/plugin/executions 执行的目标列表
plugins/plugin/executions/execution 一个执行目标
plugins/plugin/executions/execution/id 执行目标的标识符
plugins/plugin/executions/execution/phase 绑定目标到构建生命周期阶段,如果省略,目标会被绑定到插件配置的默认阶段
plugins/plugin/executions/execution/goals 执行的目标列表
plugins/plugin/executions/execution/goals/goal 一个执行目标
plugins/plugin/dependencies 插件所需要的额外依赖,参考 dependencies 元素
plugins/plugin/executions/execution/inherited 配置是否传播到子 POM
plugins/plugin/executions/execution/configuration 插件的配置信息
pluginManagement 插件管理,这里的插件配置项直到被引用时才会被解析或绑定到生命周期。pluginManagement 和 plugins 的关系类似 dependencyManagement 和 dependencies 的关系。 
pluginManagement/plugins 插件列表,参考 plugins 元素

18、repositories

repositories 用于配置依赖和扩展的远程仓库。

<repositories>
    <repository>
        <id>snapshot-repository</id>
        <name>snapshots</name>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        <layout>default</layout>
        <releases>
            <enabled>false</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </repository>
</repositories>

配置说明:

节点 说明
repository 一个远程参考配置
repository/id 远程仓库唯一标识符,可以用来匹配在 settings.xml 文件里配置的远程仓库
repository/name  远程仓库名称
repository/url 远程仓库 URL
repository/layout 仓库布局类型,可以为:legacy(遗留)、default
repository/releases 如何处理远程仓库里发布版本的下载
repository/releases/enabled 是否从该仓库下载发布版本,默认:true
repository/releases/updatePolicy 下载更新的频率,可以为:always,daily(默认,每日),interval:X(单位为分钟),never
repository/releases/checksumPolicy 当 Maven 验证构件校验文件失败时如何处理:ignore,fail,warn
repository/snapshots 如何处理远程仓库里快照版本的下载
repository/snapshots/enabled 是否从该仓库下载快照版本,默认:true
repository/snapshots/updatePolicy 下载更新的频率,可以为:always,daily(默认,每日),interval:X(单位为分钟),never
repository/snapshots/checksumPolicy 当 Maven 验证构件校验文件失败时如何处理:ignore,fail,warn

19、pluginRepositories

pluginRepositories 用于配置插件的远程仓库。

<pluginRepositories>
    <pluginRepository>
    ...
    </pluginRepository>
</pluginRepositories>

pluginRepositories/pluginRepository 表示一个远程仓库配置,它的子元素与 repositories/repository 一致。

20、distributionManagement

distributionManagement 用于描述项目如何分发,执行 mvn deploy 后将把项目分发到对应的位置;通过该配置可以把网站部署到远程服务器或者把构件部署到远程仓库。

<distributionManagement>
    <repository>
        <id>ossrh</id>
        <name>ossrh</name>
        <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        <uniqueVersion>false</uniqueVersion>
        <layout>default</layout>
    </repository>
    <snapshotRepository>
        <id>ossrh</id>
        <name>ossrh</name>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        <uniqueVersion>false</uniqueVersion>
        <layout>default</layout>
    </snapshotRepository>
    <site>
        <id></id>
        <name></name>
        <url></url>
    </site>
    <downloadUrl></downloadUrl>
    <relocation>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <message></message>
    </relocation>
    <status></status>
</distributionManagement>

配置说明:

节点 说明
repository 项目发布版本部署的远程仓库
repository/id 远程仓库唯一标识,可以用来匹配在 settings.xml 文件里配置的远程仓库
repository/name 远程仓库名称
repository/url 远程仓库 URL
repository/layout 仓库布局类型,可以为:legacy(遗留)、default
snapshotRepository 项目快照版本部署的远程仓库
snapshotRepository/id 远程仓库唯一标识,可以用来匹配在 settings.xml 文件里配置的远程仓库
snapshotRepository/name 远程仓库名称
snapshotRepository/url 远程仓库 URL
snapshotRepository/layout 仓库布局类型,可以为:legacy(遗留)、default
site 项目部署的站点
site/id 站点唯一标识,可以用来匹配在 settings.xml 文件里配置的站点
site/name 站点名称
site/url 站点 URL
downloadUrl 项目下载页面的 URL,如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)
relocation 如果项目有了新的 groupId 和 artifactId(项目移到了新的位置),这里列出项目新的信息
relocation/groupId 项目新 groupId
relocation/artifactId 项目新 artifactId
relocation/version 项目新版本
relocation/message 向用户显示有关项目移动的附加消息,例如原因
status 给出该工件在远程存储库中的状态。不能在本地项目中设置,它是由远程仓库的工具更新的。有效值为:none(默认值)、converted(仓库管理器从Maven 1 POM转换)、partner(直接从Maven 2仓库同步)、deployed(从Maven 2实例部署)、verified(已手工验证为正确的和最终的)。

21、profiles

profiles 元素用于描述项目构建配置,如果被激活,将会修改构建处理。

<profiles>
    <profile>
        <id>abc</id>
        <activation>
            <activeByDefault>false</activeByDefault>
            <jdk>[1.8,)</jdk>
            <os>
                <name>Win10</name>
                <family>Windows</family>
                <arch>x86</arch>
                <version>22H2</version>
            </os>
            <property>
                <name>mavenVersion</name>
                <value>3.8.1</value>
            </property>
            <file>
                <exists>/home/mongo/a.txt</exists>
                <missing>/home/mongo/b.txt</missing>
            </file>
        </activation>
        <build>

        </build>
        <modules>

        </modules>
        <repositories>

        </repositories>
        <pluginRepositories>

        </pluginRepositories>
        <dependencies>

        </dependencies>
        <dependencyManagement>

        </dependencyManagement>
        <distributionManagement>

        </distributionManagement>
        <properties/>
        <reports/>
        <reporting>
            
        </reporting>
    </profile>
</profiles>

配置说明:

节点 说明
profile 一个构建配置
profile/id 构建配置唯一标识,用于命令行激活,也用于在继承时合并具有相同标识符的 profile
profile/activation 触发此构建配置的条件逻辑。
profile/activation/activeByDefault 默认是否激活
profile/activation/jdk 当检测到匹配的 JDK 时将激活此构建配置
profile/activation/os 当检测到匹配的操作系统时将激活此构建配置
profile/activation/os/name 用于激活构建配置的操作系统名称,必须与 Java 属性 ${os.name} 精确匹配
profile/activation/os/family 用于激活构建配置的通用操作系统系列
profile/activation/os/arch 用于激活构建配置的操作系统体系结构
profile/activation/os/version 用于激活构建配置的操作系统版本
profile/activation/property 用于激活构建配置的 Maven 系统属性,如果存在对应属性和值将会激活该构建配置
profile/activation/property/name 属性名称
profile/activation/property/value 属性值,如果为空,那将不判断属性的值,只要属性存在就会激活该构建配置
profile/activation/file 通过文件是否存在来激活构建配置
profile/activation/file/exists 如果该文件存在,则激活构建配置
profile/activation/file/missing 如果该文件不存在,则激活构建配置
profile/build 项目构建所需信息,参考 build 元素
profile/modules 项目模块信息,参考 modules 元素
profile/repositories 依赖和扩展的远程仓库,参考 repositories 元素
profile/pluginRepositories 插件的远程仓库,参考 pluginRepositories 元素
profile/dependencies 项目的依赖信息,参考 dependencies 元素
profile/dependencyManagement 通过该配置来管理依赖,参考 dependencyManagement 元素
profile/distributionManagement 项目分发信息,参考 distributionManagement 元素
profile/properties 项目属性信息,参考 properties 元素
profile/reports 已过期
profile/reporting 根据该配置生成报表,参考 reporting 元素

 

 

参考:https://www.runoob.com/maven/maven-pom.html。文章来源地址https://www.toymoban.com/news/detail-514024.html

到了这里,关于Maven 入门实战(2)--POM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven项目配置pom.xml 指定JDK版本和编码

    配置Maven项目的 pom.xml 文件:指定JDK版本和编码 当开发Java项目时,使用Maven作为构建工具是非常普遍的选择。Maven不仅提供了项目依赖管理的强大功能,还允许开发者通过配置 pom.xml 文件来精确控制项目的构建过程。在本文中,我们将重点介绍如何在Maven项目的 pom.xml 文件中指

    2024年04月09日
    浏览(36)
  • 新版IDEA无法解析Maven项目中的pom.xml文件

    在使用新版IDEA进行Maven项目开发时,有时会遇到无法解析pom.xml文件的问题。这可能导致项目无法构建或无法正常导入相关依赖。本文将介绍一些可能的原因和解决方案,帮助您解决这个问题。 检查Maven配置: 首先,确保您的IDEA正确配置了Maven。在IDEA的设置中,通过以下步骤

    2024年02月03日
    浏览(66)
  • Maven的三种项目打包方式——pom,jar,war的区别

    记录一次项目启动失败,发现Could not resolve dependencies for project的错误,原因是我的子模块的打包方式是pom 是怎么发现,因为我是从父模块打包的,但是发现我这个子模块找不到,我发现父子模块依赖关系也没错啊,我就单独打包这个子模块,结果没有错误,但是没生成targe

    2024年02月12日
    浏览(42)
  • 新建SpringBoot Maven项目中pom常用依赖配置及常用的依赖的介绍

    完整的pom文件放在后面 1.springboot项目的总(父)依赖大全 当我们使用 spring 或 spring-boot 开发项目时,需要引入很多依赖,包括 spring 本身的组件、各种 spring-boot-starter、以及其它第三方依赖(如:slf4j、redis)。依赖多了,版本的选择是个问题,就怕哪个版本选择的不对导致出现

    2024年02月06日
    浏览(50)
  • idea构建Maven项目,出现问题,pom文件灰色带有横线,main方法无法运行,解决办法

    1.pom文件出现灰色,并且带有横线,可能是因为你频繁删除这个项目,又创建造成的,         解决办法:找到 找到这个页面,把对钩点掉。确定,重启一下idea就OK了。 2.创建的maven项目,无法运行         八成就是你的maven配置有问题         我在这假定你已经成功安装了

    2024年02月03日
    浏览(72)
  • 关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法

    Springboot项目出现的依赖错误。 在Springboot项目启动时,项目报错‘parent.relativePath’ of POM问题,项目无法正常启动。    发生该问题的根本原因是因为在项目文件夹的外层包含着另一个项目,此时项目文件无法确定该文件的pom依赖是引用哪一个parent依赖导致的。推荐使用方法二

    2024年02月13日
    浏览(46)
  • IDEA创建spring boot项目无法加载出maven里的pom.xml,而是settings.gradle

    在创建的maven项目里找不到pom.xml文件而是settings.gradle,如下图所示: 原因和解决方法: 是因为在创建Springboot项目的时候type里选的是Gradle,gradle和maven又不一样,换成maven就行了,具体操作如下图所示: 在用idea创建maven项目时,在Project Metadata界面Type选项下唯有Maven和Maven PO

    2024年02月09日
    浏览(58)
  • 【亲测有效】解决idea中maven项目的pom文件不会自动下载jar包问题 + 更新不完整依赖命令

    一杯茶,一袋烟,一个bug改一天,唉~ 一天下来整个人都麻了; 废话不多说了,作者创作本文旨在使用言简意赅的语言为同样遇到此问题的伙伴们尽快解决困难,少走弯路。 看问题:idea中maven项目的pom文件不会自动下载jar包 setting —— maven —— 去掉work offline 的勾 Settings -

    2024年02月06日
    浏览(48)
  • IDEA中maven项目工程中的pom.xml文件变灰且中间有一条横线的处理方法

    错误描述: 不知道是什么原因, pom.xml文件被忽略了,但是之前我也没有过什么误操作。。。  解决方法: 1. File--Settings  2. 搜索 maven,找到 maven 下面的 Ignored Files,将清单中对应项目的pom.xml文件 取消选中 即可; 如果取消选中之后,在 idea 的工作区还是显示 pom.xml 文件中

    2024年02月09日
    浏览(51)
  • 已解决IDEA创建Maven项目出现:“role: org.apache.maven.model.validation.ModelValidator roleHint: ide”

    💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜 📝 个人主页:馆主阿牛🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 📣 系列专栏:java 小白到高手的蜕变🍁 💬格言:要成为光,因为有怕黑的人!🔥 今天在IDEA配置好Maven之后,创建Maven项目时出现错误: “rol

    2023年04月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包