mvn 属性 没有被 -D 选项覆盖
mvn property is not getting overriden with -D option
在我的 pom.xml 中,我有一个 属性 用于 protocPath
:
<properties>
<protobuf.version>3.6.1</protobuf.version>
<build.root.dir>${project.basedir}/..</build.root.dir>
<build.output.dir>${build.root.dir}/build</build.output.dir>
<protocPath>/usr/local/bin/protoc</protocPath>
</properties>
我运行这个命令make mvn-build
我有 CMakeLists.txt
add_custom_target(
mvn-build
COMMAND mvn -s
-DPROTOC_PATH=$ENV{PROTOC}
verify
)
$ENV{PROTOC}
解析为某个安装路径,即不是 /usr/local/bin/protoc
.
我收到这个错误。为什么它试图在 /usr/local/bin/protoc
中使用 protoc
,而不是 $ENV{PROTOC}
中的那个?
[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project ntnxdb-client-proto: An error occurred while invoking protoc: Error while executing process. Cannot run program "/usr/local/bin/protoc": error=2, No such file or directory -> [Help 1]
编辑
我已经改成下面的,仍然是同样的错误:
add_custom_target(
mvn-opt ALL
WORKING_DIRECTORY ${NTNX_TOP_SOURCE_DIR}
COMMAND mvn
-DPROTOCPATH=$ENV{PROTOC}
verify
)
Maven 属性确实区分大小写,因此您必须使用 -DprotocPath=...
来覆盖该值。
Maven 文档中 Pom reference 的 Properties 部分对此有明确的提示:
Note: While environment variables themselves are case-insensitive on
Windows, lookup of properties is case-sensitive.
(粗体是我的)。
您也可以使用例如maven-compiler-plugin 的 verbose
设置:
mvn clean compile -Dmaven.compiler.verbose=true
对比
mvn clean compile -Dmaven.compiler.VERBOSE=true
只有前者有效。
在我的 pom.xml 中,我有一个 属性 用于 protocPath
:
<properties>
<protobuf.version>3.6.1</protobuf.version>
<build.root.dir>${project.basedir}/..</build.root.dir>
<build.output.dir>${build.root.dir}/build</build.output.dir>
<protocPath>/usr/local/bin/protoc</protocPath>
</properties>
我运行这个命令make mvn-build
我有 CMakeLists.txt
add_custom_target(
mvn-build
COMMAND mvn -s
-DPROTOC_PATH=$ENV{PROTOC}
verify
)
$ENV{PROTOC}
解析为某个安装路径,即不是 /usr/local/bin/protoc
.
我收到这个错误。为什么它试图在 /usr/local/bin/protoc
中使用 protoc
,而不是 $ENV{PROTOC}
中的那个?
[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project ntnxdb-client-proto: An error occurred while invoking protoc: Error while executing process. Cannot run program "/usr/local/bin/protoc": error=2, No such file or directory -> [Help 1]
编辑 我已经改成下面的,仍然是同样的错误:
add_custom_target(
mvn-opt ALL
WORKING_DIRECTORY ${NTNX_TOP_SOURCE_DIR}
COMMAND mvn
-DPROTOCPATH=$ENV{PROTOC}
verify
)
Maven 属性确实区分大小写,因此您必须使用 -DprotocPath=...
来覆盖该值。
Maven 文档中 Pom reference 的 Properties 部分对此有明确的提示:
Note: While environment variables themselves are case-insensitive on Windows, lookup of properties is case-sensitive.
(粗体是我的)。
您也可以使用例如maven-compiler-plugin 的 verbose
设置:
mvn clean compile -Dmaven.compiler.verbose=true
对比
mvn clean compile -Dmaven.compiler.VERBOSE=true
只有前者有效。