我有一个配置文件默认激活在我的maven设置文件~/.m2/settings.xml.
是否可以在命令行中禁用它,方法如下:
mvn -P!profileActivatedByDefault
是的,你的方法是对的。从maven配置文件用户指南
取消激活配置文件
从Maven 2.0.10开始,可以使用命令行禁用一个或多个配置文件,方法是在它们的标识符前加上字符'!'或'-',如下所示:
mvn groupId:artifactId:goal -P !profile-1,!profile-2
这可以用来取消激活标记为activeByDefault的配置文件,或者通过激活配置激活的配置文件。
正如@Calfater在注释中指出的那样,在大多数shell (Linux和MacOS上的bash, zsh和其他shell)中需要转义感叹号,尽管在windows命令行中不需要转义。
转义机制是依赖于shell的,但通常你可以这样做:
mvn groupId:artifactId:goal -P !profile-1
或
mvn groupId:artifactId:goal -P '!profile-1'
或者,正如Shaun Morris下面建议的那样,使用-
代替!
,但在-P
和配置文件之间不使用空白:
mvn groupId:artifactId:goal -P-profile-1,-profile2
在Mac上,我尝试使用'!'
mvn groupId:artifactId:goal -P!profile-1
-bash: !profile: event not found
使用'-'做以下工作:
mvn groupId:artifactId:goal -P-profile1
或者你可以这样做:
mvn groupId:artifactId:goal -P!profile1
从Maven 2.0.10开始,可以使用命令行禁用一个或多个概要文件,方法是在它们的标识符前加上字符'!'或'-',如下所示:
mvn groupId:artifactId:goal -P !profile-1,!profile-2
这可以用来取消激活标记为activeByDefault的配置文件或通过激活配置激活的配置文件。参考Maven Doc
由于!
感叹号是大多数命令行工具的特殊字符,因此您可能需要对其进行转义,此处参考