我有一些自动化使用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
它只是在没有相关项目的情况下运行目标?
答案 0 :(得分:3)
您可以通过传递INFO
标记(或--quiet
)来取消所有-q
输出。
如果您希望在删除其余部分时有一些INFO
,则可以通过对Maven github和configure 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现在假设此文件存在。