繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM