bash:执行maven commad时的错误替换

时间:2016-02-04 17:09:18

标签: bash maven

我收到以下错误:

bash: -Dversion=${log4j.version}: bad substitution
执行以下commad时

mvn install:install-file -DgroupId=log4j -DartifactId=log4j -Dversion=${log4j.version} -Dpackaging=jar -Dfile=/home/user/Downloads/log4j-1.2.17.jar

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

您可以在$:

之前添加反斜杠
     mvn install:install-file -DgroupId=log4j -DartifactId=log4j -Dversion=\${log4j.version} -Dpackaging=jar -Dfile=/home/user/Downloads/log4j-1.2.17.jar

答案 1 :(得分:1)

Bash正在尝试展开${log4j.version},这是一个无效的变量名称。你有两种方法。

如果没有pom.xml,您需要自己提供一个版本:

mvn install:install-file \
  -DgroupId=log4j \
  -DartifactId=log4j \
  -Dversion=1.2.17 \
  -Dpackaging=jar \
  -Dfile=/home/user/Downloads/log4j-1.2.17.jar

使用pom.xml并可选择删除groupIdartifactIdversion和/或packaging,如果您不需要更改它们 - 有效pom.xml应该包含所有这些内容:

mvn install:install-file \
  -Dfile=/home/user/Downloads/log4j-1.2.17.jar \
  -DpomFile=/home/user/Downloads/pom.xml