首页 > 解决方案 > 设置 project.build.sourceDirectory 是否适用于 Maven 属性?

问题描述

我有一个使用非标准 Maven 目录结构的项目。

使用 maven 3.6.0 和 maven-compiler-plugin 3.8.0 在 maven 属性中设置 project.build.sourceDirectory 是否有效?

我尝试使用:

<properties>
<project.build.sourceDirectory>${project.basedir}/src/my_source_dir<project.build.sourceDirectory>
</properties>

但这没有用。compileSourceRoots 默认为 My_project_path\src\main\java

将 sourceDirectory 放在该部分中确实有效。

<build>
<sourceDirectory>${project.basedir}/src/my_source_dir<sourceDirectory> 
...

这是一个错误还是 project.build.sourceDirectory 不受支持?

标签: mavenmaven-3maven-plugin

解决方案


最简洁的答案是不。

maven 3.x 不支持在属性部分设置 project.build.sourceDirectory。project.build.sourceDirectory 属性可以作为只读属性引用。必须在使用标签的部分中设置源目录。

Gmugra 指出了一种替代方法,在 generate-sources 阶段通过标签使用 build-helper-maven-plugin。见:https ://www.mojohaus.org/build-helper-maven-plugin/usage.html


推荐阅读