我的Maven设置文件〜/ .m2 / settings.xml中默认激活了一个配置文件。
是否可以通过执行以下操作从命令行停用它:
mvn -P!profileActivatedByDefault
Answers:
是的,的确,您有正确的方法。从Maven配置文件用户指南
停用个人资料
从Maven 2.0.10开始,可以使用命令行停用一个或多个配置文件,方法是在其标识符前面加上字符'!'。或“-”,如下所示:
mvn groupId:artifactId:goal -P !profile-1,!profile-2
这可用于停用标记为activeByDefault的配置文件或将通过其激活配置激活的配置文件。
正如@Calfater在评论中指出的那样,感叹号需要在大多数shell(bash,zsh以及Linux和MacOS上的其他shell)中转义,尽管不是在Windows命令行上。
转义机制取决于外壳,但是通常您可以:
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
zsh
。我只是-P
在这样的单引号之间:-P '!dev'
在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
-P
将忽略其他配置文件(例如,activeByDefault
或<activation>),但是仅/排他地使用停用语法(!
前缀)将仅停用这些配置文件,并且不会覆盖activeByDefault
或<activation>
声明
-P
除了activeByDefault配置文件外,还将添加配置文件:“此选项接受一个以逗号分隔的配置文件ID列表的参数。当指定此选项时,该选项中指定的配置文件参数会被激活配置文件或settings.xml中的<activeProfiles>部分激活的配置文件激活。”
mvn groupId:artifactId:goal -P \!profile-name