maven 的几个内置属性

内置属性

主要有两个常用内置属性: ${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-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>

自定义变量

<profiles>
    <profile>
        <id>dev</id>
        <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>
    </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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: maven-clean-plugin 的报红可能是因为该插件的版本与项目的其他依赖不兼容造成的。建议您检查 pom.xml 文件中该插件的版本是否符合项目其他依赖的版本要求。如果不兼容,可以更新该插件的版本或将其与项目其他依赖的版本进行匹配。 ### 回答2: maven-clean-plugin报红通常是由于以下几种情况造成的: 1.插件版本不兼容:maven-clean-plugin的版本与当前使用的Maven版本不兼容,可能会导致插件报错或出现警告。解决这个问题的方法是查看maven-clean-plugin的官方文档,找到与当前Maven版本兼容的插件版本,并在pom.xml文件中指定正确的版本号。 2.配置错误:在pom.xml文件中可能配置了错误的插件参数或属性,导致插件报红。解决这个问题的方法是检查pom.xml文件中关于maven-clean-plugin的配置,确保参数和属性的正确性。 3.依赖冲突:可能在项目的依赖中存在与maven-clean-plugin冲突的其他插件或库,导致插件报红。解决这个问题的方法是检查项目的依赖关系,排除冲突的插件或库,或者调整依赖的版本使其兼容。 4.插件使用方式错误:在使用maven-clean-plugin时可能使用了错误的命令或方式,导致插件报红。解决这个问题的方法是查阅maven-clean-plugin的官方文档或相关教程,学习正确的插件使用方法,并按照文档描述进行调整。 总之,当maven-clean-plugin报红时,我们需要检查插件版本、配置是否正确,检查依赖是否冲突,并且了解相关插件的正确使用方式,以解决报红问题。 ### 回答3: maven-clean-plugin 报红通常是指在使用 Maven 构建项目时,出现了与 maven-clean-plugin 相关的错误或警告提示。这种问题的出现可能有多种原因,下面列举了一些常见的解决方法: 1. 确认 Maven 版本:首先,确保你使用的是最新版本的 Maven。有时候,maven-clean-plugin 的错误可能是由于过期的 Maven 版本引起的。通过在命令行中输入 "mvn --version" 可以查看当前 Maven 的版本信息,如果不是最新版本,可以考虑升级。 2. 检查 pom.xml 配置:maven-clean-plugin 是 Maven 的一个内置插件,在执行 `mvn clean` 命令时会自动调用。但是,要确保在项目的 pom.xml 文件中正确配置了该插件。可以通过检查 pom.xml 文件中的 `<plugins>` 标签,确认是否存在 `<plugin>` 标签,并且其中包含 maven-clean-plugin 的相关配置。 3. 清除依赖缓存:有时,maven-clean-plugin 报红可能是由于项目的依赖缓存导致的。可以尝试清除 Maven 的本地仓库中的依赖缓存,然后再重新构建项目。可以通过删除 Maven 本地仓库的目录(默认路径是 `~/.m2/repository`),然后重新运行 `mvn clean install` 命令来实现。 4. 其他可能的原因:除了上述方法之外,还可能有其他原因导致 maven-clean-plugin 报红。这时,建议查看详细的错误或警告提示,并在 Maven 官方文档、Stack Overflow 等资源中搜索相关解决方案。 总之,当遇到 maven-clean-plugin 报红问题时,首先应该检查 Maven 版本、pom.xml 配置、依赖缓存等常见问题,然后结合具体错误信息进行问题定位和解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值