Maven的六类属性

转载于:http://php-note.com/article/1724.html

内置属性

主要有两个常用内置属性:${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,与${version}等价

${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-aartifactId>
        <version>${project.version}version>
    dependency>
    <dependency>
        <groupId>${project.groupId}groupId>
        <artifactId>part-bartifactId>
        <version>${project-version}version>
    dependency>
dependencies>

在插件中使用pom变量

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

自定义变量

<profiles>
    <profile>
        <id>devid>
        <properties>
            <db.driver>com.mysql.jdbc.Driverdb.driver>
            <db.url>jdbc:mysql://localhost:3360/testdb.url>
            <db.username>usernamedb.username>
            <db.password>password>db.password>
        properties>
    profile>
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)

你可能感兴趣的:(DevOps,maven,属性)