添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
聪明的海龟  ·  PyLoT - the Python ...·  4 月前    · 
跑龙套的胡萝卜  ·  遐悠网·  1 年前    · 
光明磊落的茶壶  ·  eCFR :: 40 CFR Part ...·  1 年前    · 
首页 > 软件编程 > java > pom文件中${project.basedir}

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

作者:三水木00

这篇文章主要介绍了pom文件中${project.basedir}的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

${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)

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

您可能感兴趣的文章:
  • SpringCloud 服务注册中的nacos实现过程
    SpringCloud 服务注册中的nacos实现过程
    2022-03-03
  • MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用详解
    MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用详解
    2022-03-03
  • spring-boot-maven-plugin报红解决方案(亲测有效)
    spring-boot-maven-plugin报红解决方案(亲测有效)
    2022-03-03
  • redis实现分布式锁实例详解
    redis实现分布式锁实例详解
    2022-03-03
  • pom文件中${project.basedir}的使用
    pom文件中${project.basedir}的使用
    2022-03-03
  • Maven构建忽略测试失败的解决方案
    Maven构建忽略测试失败的解决方案
    2022-03-03
  • java多线程开发ScheduledExecutorService简化方式
    java多线程开发ScheduledExecutorService简化方式
    2022-03-03
  • Maven依赖junit @Test报错的解决方案
    Maven依赖junit @Test报错的解决方案
    2022-03-03
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号