[英]Execute maven goal without a project
我有一些使用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
执行dependency:get
实际上并未生成项目。 缺少捕获和处理输出以剥离该信息的方法,是否有一种简单的方法告诉mvn
它只是在没有相关项目的情况下运行目标?
您可以通过传递--quiet
标志(或-q
)来禁止显示所有INFO
输出。
如果您希望在删除其余INFO
有一些INFO
,则可以通过对Maven github进行搜索并配置日志记录属性以排除这些内容,从而确定要静音的所有组件。
例如,您可以添加以下标志: -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.event.ExecutionEventLogger=ERROR
,表示正在Scanning for projects...
消息。
如果有pom.xml
,将始终使用它; 它可能包含有关maven-dependency-plugin的其他信息。 因此,没有,没有选择可以忽略此Building ...
消息。 甚至尝试引用不存在的pom文件( -f no-pom.xml
)也无济于事,因为Maven现在假定该文件存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.