pom.xml 中 $project.basedir 的含义

Posted

技术标签:

【中文标题】pom.xml 中 $project.basedir 的含义【英文标题】:Meaning of $project.basedir in pom.xmlpom.xml 中 $project.basedir 的含义 【发布时间】:2016-06-29 08:19:27 【问题描述】:

是什么意思

<directory>$project.basedir</directory>

$project.build.directory

在 pom.xml 中

【问题讨论】:

maven.apache.org/pom.html#Build_Settings 几乎没有离题,给出的关闭理由似乎完全不合适。 @EdRandall 关闭的原因确实无效,但是我不确定是否有必要重新打开,答案已经给出。这可能值得设置为受保护,而不是关闭 【参考方案1】:

所有 Maven 项目都有一组可用的属性。

来自Introduction to the POM:

project.basedir:当前项目所在的目录。

这意味着这指向您的 Maven 项目在系统上的位置。它对应于pom.xml 文件的位置。如果您的 POM 位于 /path/to/project/pom.xml 内,则此属性将评估为 /path/to/project

某些属性也继承自Super POM,project.build.directory 就是这种情况。它是 POM 的 &lt;project&gt;&lt;build&gt;&lt;directory&gt; 元素内的值。您可以通过查看Maven model 获得所有这些值的描述。对于project.build.directory,是:

构建生成的所有文件所在的目录。默认值为target

该目录将保存构建生成的每个文件。

【讨论】:

【参考方案2】:

$project.basedir 是你项目的根目录。

$project.build.directory 等价于$project.basedir/target

正如这里定义的那样: https://github.com/apache/maven/blob/trunk/maven-model-builder/src/main/resources/org/apache/maven/model/pom-4.0.0.xml#L53

【讨论】:

以上是关于pom.xml 中 $project.basedir 的含义的主要内容,如果未能解决你的问题,请参考以下文章

pom.xml文件

jenkins读取pom.xml

pom.xml多配置环境加载不同依赖

如何在pom.xml文件中修改build节点

Maven之pom.xml详释

pom.xml 中 $project.basedir 的含义