在没有项目的情况下执行maven目标

时间:2016-10-21 19:24:10

标签: java maven

我有一些自动化使用mvn将工件下载到本地文件系统,因此可以在maven之外使用它们。基本上,我做这样的事情:

#!/bin/bash
mvn dependency:get \
    -DgroupId="my.group.id" \
    -DartifactId="$1" \
    -Dversion="$2" \
    -Dpackaging="war" \
    -DremoteRepositories="http://my.repo/nexus/content/repositories/foo"

问题(而不是真的问题)是我得到以下输出:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building some-other-project 1.2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------

如果我碰巧从some-other-project的子文件夹运行此命令。这对于运行此脚本的人来说很困惑,因为dependency:get执行实际上并不构建项目。如果没有捕获和处理输出以去除该信息,是否有一种简单的方法可以告诉mvn它只是在没有相关项目的情况下运行目标?

2 个答案:

答案 0 :(得分:3)

您可以通过传递INFO标记(或--quiet)来取消所有-q输出。

如果您希望在删除其余部分时有一些INFO,则可以通过对Maven githubconfigure the logging properties进行搜索来确定您想要保持沉默的所有组件排除这些。

E.g。您可以为-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.event.ExecutionEventLogger=ERROR消息添加以下标记:Scanning for projects...

答案 1 :(得分:-1)

如果有pom.xml,则会始终使用它;它可能包含maven-dependency-plugin的额外信息。所以不,没有选择忽略此Building ...消息。即使尝试引用不存在的pom文件(-f no-pom.xml)也无济于事,因为Maven现在假设此文件存在。