如何从另一个目录运行Maven(没有cd到项目目录)?

假设我的maven项目位于/some/location/project,我的当前位置是/another/location/,我如何运行maven构建而不改变到项目位置cd /some/location/project?

180456 次浏览

我不认为maven支持这一点。如果你在Unix上,不想离开你的当前目录,你可以使用一个小的shell脚本,一个shell函数,或者只是一个子shell:

user@host ~/project$ (cd ~/some/location; mvn install)
[ ... mvn build ... ]
user@host ~/project$

作为bash函数(可以添加到~/.bashrc中):

function mvn-there() {
DIR="$1"
shift
(cd $DIR; mvn "$@")
}


user@host ~/project$ mvn-there ~/some/location install)
[ ... mvn build ... ]
user@host ~/project$

我知道这并没有回答具体的问题,但可能会为你提供你想要的东西。我不熟悉Windows shell,不过您应该也能在那里找到类似的解决方案。

问候

你可以使用参数-f(或--file)并指定pom文件的路径,例如mvn -f /path/to/pom.xml

这运行maven &;as &;它是/path/to工作目录。

对我来说,是这样工作的:mvn -f /path/to/pom.xml [goals]

你可以试试这个:

pushd ../
maven install [...]
popd