Maven 之 配置文件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/maven-v4_0_0.xsd">

  指定了pom.xml文件使用的XML schema版本,目前,其最新的版本是4.0.0	
  <modelVersion>4.0.0</modelVersion>
  项目的组名,通常是反转的域名,比如com.example。
  <groupId>com.example</groupId>
  项目的唯一标识符,通常是项目的名称。
  <artifactId>example-proj</artifactId>
  项目的版本号。
  <version>1.0.0</version>
  项目名,可选项,提供项目的简短名称
  <name>Example Project</name>
  项目描述,可选项,提供项目的详细描述。
  <description>This is an example Maven project.</description>
 
  <dependencies>  <!-- 依赖项 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.2.1.RELEASE</version>
    </dependency>
  </dependencies>

  <build>   <!-- 项目构建 -->
    <plugins>   <!-- 插件配置 -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.example.App</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

modules:
modules 标签用于声明当前 Maven 项目包含的模块子项目,每个子项目都是一个独立的 Maven 项目,具有自己的 pom.xml 文件,可以进行独立构建和测试。在父项目的 pom.xml 文件中,使用 标签来列出所有子项目的名称,如下所示:

<project>
  <groupId>com.example.parent</groupId>
  <artifactId>parent-project</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>

  <modules>
    <module>child1</module>
    <module>child2</module>
    <module>child3</module>
  </modules>
</project>

parent:
parent 标签用于声明当前 Maven 项目的父项目,它可以将若干个 Maven 项目组织成一个整体,指定版本号,插件版本号等,便于管理和维护,在一个 Maven 项目中,使用标签来引用父项目,如下所示:

<project>
  <groupId>com.example.child</groupId>
  <artifactId>child-project</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <parent>
    <groupId>com.example.parent</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0.0</version>
  </parent>
</project>

properties:

<properties>
    <project.name>demo-project</project.name>
    <project.version>1.0.0</project.version>
    <jdk.version>1.8</jdk.version>
</properties>

<dependency>
    <groupId>com.example.demo</groupId>
    <artifactId>${project.name}-api</artifactId>
    <version>${project.version}</version>
</dependency>

plugins:

    <build>
        <plugins>
            <!-- 当运行maven打包的命令,项目会被打包成一个可以直接运行的jar包 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            
            指定maven编译的jdk版本      
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
        <finalName>${project.artifactId}</finalName>
    </build>
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pom.xml是Maven项目的配置文件,其中包含了项目的基本信息,依赖库信息和构建配置等内容。在这个文件中可以定义项目的Maven坐标、构建环境、依赖的库和版本、插件、测试用例等。pom.xml的作用是让Maven知道如何构建项目和下载依赖的库,并且可以用来进行版本管理和项目的管理。 ### 回答2: Maven是一种基于项目对象模型(POM)的项目管理工具,它可以自动化构建、测试和部署Java项目。而pom.xml是Maven项目的核心配置文件,用于描述构建过程、依赖关系、插件和其他项目元数据。 POM(Project Object Model)是Maven中的一个概念,指的是一个项目的对象模型。一个POM文件就是一个XML文件,其中包含了一些关于项目配置信息的定义。项目在使用Maven进行构建时,这个POM文件就会被读取和解析。POM文件中的信息将会被用来构建项目、打包成可部署文件、进行测试、生成文档等。 一般来说,一个基本的pom.xml文件包含以下配置项: 1. 项目基本信息配置: 包括项目名称、版本号、组织名、开发者等基本信息。 2. 依赖配置: 包括项目所依赖的所有JAR包及其版本号,这些依赖可以通过在pom.xml文件中配置groupId、artifactId和version等元素来实现。 3. 插件配置: Maven中有大量的插件可以用来实现某些功能,比如编译代码、打包、测试等。使用pom.xml文件中的plugin元素可以指定需要使用的插件及其配置信息。 4. 打包方式: 指定项目的打包方式,例如jar、war或者其他类型的包。 5. 构建配置: 指定如何构建项目,例如源文件目录、输出目录等。 6. 发布配置: 指定发布项目的方式,例如将构建好的文件上传到仓库等。 这些配置信息的设置可以让Maven获知你的代码使用了哪些库和插件,在构建过程中引入这些依赖,并在必要时编译这些依赖。同时,pom.xml文件也允许你自定义一些构建过程中的插件和目标等。 总之,pom.xml是Maven构建Java项目的重要组成部分,它使用一种简单易懂的方式自动完成了构建、测试、打包和发布等流程。掌握了pom.xml的配置方法,可以帮助我们更好地管理Java项目,提高项目构建的效率和质量。 ### 回答3: Maven是一种自动化构建工具,能够自动化构建项目、管理依赖,以及生成可执行包。Maven能够根据我们的配置文件pom.xml的信息,自动下载依赖库,理顺依赖关系,进行项目的编译、测试、打包等步骤。 pom.xml文件是项目的核心配置文件,它定义了项目的基本信息、依赖库、构建方式以及其他重要的项目设置。下面我们来详细解析pom.xml文件的各个部分: <project> 标签:这个标签是pom.xml文件的根标签,它包含了整个项目的配置信息,包括项目的名称、版本、描述等。 <modelVersion> 标签:该标签规定了Maven项目模型(POM)的XML版本。常用的版本是4.0.0。 <groupId> 标签:指定了项目所属的组织或公司的唯一标识符。 <artifactId> 标签:指定了项目名称或者生成的jar包的名称,这个名称会作为最终生成的jar包的名称的一部分。 <version> 标签:指定了项目的版本号,通常包括主版本号、次版本号和修订版本号。 <dependencies> 标签:该标签用来指定项目所依赖的外部库,可以添加多个<dependency>标签,每个标签都指定一个依赖库的信息。 <dependency> 标签:该标签用来指定外部库的依赖信息,包括库的groupId、artifactId和version。我们可以在这个标签中指定库的scope(依赖范围),比如compile、test等。 <build> 标签:该标签用来指定如何构建项目,包括源码目录、编译器版本、打包方式、测试框架等。 <sourceDirectory> 标签:指定了项目源码目录的路径,通常为src/main/java。 <plugins> 标签:该标签用来指定项目使用的插件,它包含了多个<plugin>标签,每个标签都指定了一个插件的信息。 <plugin> 标签:该标签用来指定插件的信息,包括插件的groupId、artifactId和version。通常,我们会使用一些常用的插件,比如maven-compiler-plugin、maven-surefire-plugin等。 以上就是pom.xml文件的主要内容,这个文件具有很强的可读性、可维护性和可扩展性,使得开发人员可以很方便地管理项目的构建过程和依赖关系。掌握pom.xml配置技巧,可以提高项目的开发效率,并使项目更加规范化和可靠化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值