pom文件中${project.basedir}的使用

目录
  • ${project.basedir}的使用
    • 这块配置就是定义自己的项目目录结构
  • Maven的六类属性,${project.basedir},${project.build.directory}
    • 内置属性
    • POM属性
    • 自定义属性
    • Settings属性
    • Java系统属性
    • 环境变量属性
    • 在依赖中使用pom变量
    • 在插件中使用pom变量
    • 自定义变量

${project.basedir}的使用

<project> 是 pom.xml 的根节点,project.basedir 就是根节点的下级节点,缺少配置的话就要自己定义一个。

这块配置就是定义自己的项目目录结构

Maven的六类属性,${project.basedir},${project.build.directory}

内置属性

主要有两个常用内置属性:basedir项目的根目录(包含pom.xml文件的目录),{basedir}项目的根目录(包含pom.xml文件的目录),basedir项目的根目录(包含pom.xml文件的目录),{version}项目版本

POM属性

用户可以使用该属性引用POM文件中对应元素的值

常用的POM属性包括:

  • ${project.build.sourceDirectory}:项目的主源码目录,默认为 src/main/java
  • ${project.build.testSourceDirectory}:项目的测试源码目录,默认为 src/test/java
  • ${project.build.directory}:项目构件输出目录,默认为 target/
  • ${project.outputDirectory}:项目主代码编译输出目录,默认为 target/classes/
  • ${project.testOutputDirectory}:项目测试代码编译输出目录,默认为 target/test-classes/
  • ${project.groupId}:项目的 groupId
  • ${project.artifactId}:项目的 artifactId
  • project.version:项目的version,与{project.version}:项目的 version,与project.version:项目的version,与{version}等价
  • project.build.fianlName:项目打包输出文件的名称。默认为{project.build.fianlName}:项目打包输出文件的名称。默认为project.build.fianlName:项目打包输出文件的名称。默认为{project.artifactId}-${project.version}

自定义属性

用户可以在POM的元素下自定义Maven属性

Settings属性

用户使用settings.开头的属性引用 settings.xml 文件中XML元素的值

Java系统属性

所有Java系统属性都可以使用Maven属性引用

环境变量属性

所有环境变量都可以使用以env.开头的Maven属性引用

在依赖中 使用pom变量

<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>part-a</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>part-b</artifactId>
        <version>${project-version}</version>
    </dependency>
</dependencies>

在插件中使用pom变量

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <repositoryDirectory>${project.build.directory}/test-reports</repositoryDirectory>
    </configuration>
</plugin>

自定义变量

 <properties>
     <db.driver>com.mysql.jdbc.Driver</db.driver>
     <db.url>jdbc:mysql://localhost:3360/test</db.url>
     <db.username>username</db.username>
     <db.password>password></db.password>
 </properties>
</profiles>

Maven属性默认只有在POM中才会被解析,因此需要让Maven解析资源文件中的Maven属性。Maven用maven-resources-plugin处理资源文件。它默认的行为只是将项目主资源文件复制到主代码编译输出目录中,将测试资源文件复制到测试代码编译输出目录中。

Maven默认的主资源目录和测试资源目录的定义是在超级POM中,要为资源目录开启过滤,只要在此基础上添加一行filtering配置即可。

Filtering是maven resource插件的功能,作用是用环境变量,pom文件里定义的属性和指定文件里的属性替换属性文件的占位符。(超级pom在 apache-maven-3.3.9\lib\maven-model-builder-3.3.9.jar\org\apache\maven\model\pom-4.0.0.xml)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • IDEA项目的依赖(pom.xml文件)导入问题及解决

    前言 IDEA新建项目和pom.xml文件被修改时,右下角都会出现 Maven projects need to be imported(项目需要导入依赖) 如下,点击 Import Changes导入后,有时会一直处于加载中或导入失败 解决方法 第一种方法: 右击pom.xml文件,选择Maven中的Reimport重新导入项目依赖,一般这种方法都解决不了上面的问题,可直接看下面的方法 第二种方法: 点击 File 选择 Settings- 直接搜索 Maven,在搜索结果中 Maven ho

  • springboot中的pom文件 project报错问题

    目录 springboot pom文件project报错 问题如下 解决方案 pom.xml在project标签处报错:Failed to read artifact descriptor for xxx:jar 解决方案 springboot pom文件project报错 问题如下 解决方案 情况1:maven版本要和课程保持一致,网盘直接下载. 情况2:settings.xml配置要和课程保持一致,大部分都是这个地方出错了,再自已核对过一遍. 情况3:pom.xml 中的配置,自已手输或者复

  • 基于Maven pom文件中属性变量总结

    目录 Maven pom文件属性变量总结 1.内置属性 2.POM属性 3.自定义属性 Maven pom变量定义 定义变量并赋值 Maven pom文件属性变量总结 1.内置属性 ${basedir}表示当前项目根目录 ${version}表示当前项目版本 2.POM属性 ${project.artifactId} 等价于元素的值 个人理解,本质上每个标签底层是通过对象的引用实现,也同样存在继承特性(仅仅是个人理解,供参考). 以此类推,可以发现很多这一类的属性定义. 类似地 ${projec

  • pom文件中${project.basedir}的使用

    目录 ${project.basedir}的使用 这块配置就是定义自己的项目目录结构 Maven的六类属性,${project.basedir},${project.build.directory} 内置属性 POM属性 自定义属性 Settings属性 Java系统属性 环境变量属性 在依赖中使用pom变量 在插件中使用pom变量 自定义变量 ${project.basedir}的使用 <project> 是 pom.xml 的根节点,project.basedir 就是根节点的下级节点,缺

  • maven的pom文件与打包详解

    目录 一.基础配置 1.<parent> 标签 1)使用 spring-boot-starter-parent 2)使用自定义 parent 2.classifier 元素 3.classifier 的用途: 二.构建配置 字段说明 三.profile 配置 四.springboot 打包配置 打包插件 1.Maven 项目结构 2.打包时资源文件的配置 (1)打包 src/main/java 目录下的 xml (2)src/main/resources 目录下的 xml 等资源文件不被打包

  • Spring 项目常用pom文件的依赖

    properties属性 <properties> <!--使用utf-8编码--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--web--> <spring.version>4.3.14.RELEASE</spring.version> <!--数据库相关--> <mysql.version>6.0.

  • python自动更新pom文件的方法

    目录 前言 自定义实现版本更新 SHELL 实现 为什么使用SHELL python实现 文件思考 xml.etree.ElementTree 解析xml 读取com.alibaba.fastjson 的版本号 保存xml 修改xml后节点多了 中文乱码 标准化xml 修改xml后原来的注释丢了 获取不到子节点 优雅解析带命名空间的xml 总结 其他说明 前言 项目越来越多,版本管理越来越麻烦,在项目上我使用 maven version 来进行版本管理.主要还是在分布式项目中模块众多的场景中使用

  • IDEA下Maven的pom文件导入依赖出现Auto build completed with errors的问题

    在idea下新建一个maven项目,在学习mybaties时跟着视频教程添加依赖 发现可以配置maven然后自动导入,这样可以省事不用手写.前提要讲maven配置好,然后使用快捷键alt+insert,手动输入添加依赖 但是选择相应的依赖之后,控制台显示 Auto build completed with errors 在网上百度了很久,有的说是maven与idea版本不兼容(之前我下载的maven是最新的,idea是2019.1的),于是便重新下载了maven. 将maven配置成功后,问题依

  • IntelliJ IDEA2020.1版本更新pom文件自动导包的方法

    在2020.1.1版本之前IDEA pom文件导包是这样的 最近新装新版本IDEA之后,这个图标没有了,对于习惯旧操作没有图标了还真不习惯.就去idea官网查了下新版本maven更新 官网对于更新说明百度翻译了下. 百度翻译(图不清楚我贴字) Maven and Gradle importing updates IntelliJ IDEA 2020.1 brings a small but important update to our Maven and Gradle users. Inste

  • java Spring Boot 配置redis pom文件操作

    1.创建一个redis maven项目,在pom中添加如下信息 spring boot 版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> </parent> 项目相关jar配置 &l

  • Maven Pom 文件中的隐式依赖导致Jar冲突问题

    目录 在maven项目中遇到这样一个场景 解决了上述冲突的问题 Maven 查看jar包依赖关系 在maven项目中遇到这样一个场景 项目中的pom文件中,依赖了Spring-core,而Spring-core又隐式的依赖了commons-logging. 项目中同时配置了对定时任务quartz 包的依赖,而quartz又隐式依赖了slf4j. 这样项目中既有了commons-logging又有了slf4j.导致在log4j.properties里配置的mybatis的sql显示配置,一直没起作

  • springboot pom文件加入监控依赖后没有起作用的解决

    目录 pom文件加入监控依赖后没有起作用 在pom文件加入了如下依赖 在核心配置文件application.properties中添加相关配置 重新启动程序就可以看到如下actuator的相关信息 可以看到如下信息 pom.xml添加依赖时报错问题 解决 pom文件加入监控依赖后没有起作用 今天在学习springBoot的时候,想按照书上的操作了解一下监控模块 在pom文件加入了如下依赖 重启几次控制台任然不见actuator 的任何信息,后来百度一下,才了解到添加依赖只是第一步,除了添加依赖

随机推荐