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

作者:三水木00 时间:2021-12-24 04:24:11 

${project.basedir}的使用

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

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

pom文件中${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)

来源:https://www.cnblogs.com/water-1/p/11521209.html

标签:pom,project,basedir
0
投稿

猜你喜欢

  • JavaWeb使用POI操作Excel文件实例

    2022-06-12 18:19:30
  • 深入解析C#编程中struct所定义的结构

    2022-03-01 12:43:08
  • android xml实现按钮的圆角、阴影效果及按下变化效果的实现代码

    2022-07-30 23:23:12
  • Android TextView冷门实用方法技巧

    2021-07-07 03:57:17
  • Android使用WebView播放flash的方法

    2021-08-10 04:46:51
  • Java实现经典大富翁游戏的示例详解

    2023-01-03 01:41:13
  • Java如何跳出当前多重循环你知道吗

    2022-12-17 02:22:17
  • Android 监听屏幕是否锁屏的实例代码

    2022-01-19 14:31:24
  • c#定时器和global实现自动job示例

    2023-10-04 22:30:29
  • Java设计模式之静态代理模式实例分析

    2021-05-30 17:44:19
  • C++实现经典24点纸牌益智游戏

    2023-04-22 01:05:02
  • 实例讲述Java IO文件复制

    2023-01-30 17:25:32
  • c#自定义Attribute获取接口实现示例代码

    2022-09-02 05:05:26
  • SpringBoot集成mybatis实例

    2023-03-09 16:57:01
  • springAop实现权限管理数据校验操作日志的场景分析

    2023-11-23 10:00:27
  • java多线程Synchronized实现可见性原理解析

    2021-08-26 02:10:02
  • 浅析Java类和数据结构中常用的方法

    2022-03-03 19:39:53
  • SpringBoot整合Jackson超详细用法(附Jackson工具类)

    2023-05-31 23:56:06
  • eclipse配置tomcat10的详细步骤总结

    2021-10-04 03:34:25
  • Java如何获取Date的“昨天”与“明天”示例代码

    2022-12-04 14:54:16
  • asp之家 软件编程 m.aspxhome.com