繁体   English   中英

如何为一组目标创建 Maven 别名?

[英]How create maven alias for set of goals?

我正在配置一个 Maven 项目并希望能够使用别名,例如

mvn server - 执行mvn clean package tomcat:run

Grunt 任务运行器做得很好,但我还没有找到在 Maven 中做同样事情的方法。 可能吗?

如果你愿意,你可以在你的 pom 中定义一个<defaultGoal>...</defaultGoal> 所以你可以定义这样的东西:

<project>
  <build>
    <defaultGoal>clean package tomcat:run</defaultGoal>
    .
  </build>
</project>

如果你简单地调用mvn将被激活......不是真正的别名,因为通常你不需要一个......

开箱即用我不知道任何不暗示使用插件的解决方案。 一个简单的解决方案可能是为您的主目录(对于 Linux)或.bash_profile (对于 OS X)中的.bashrc文件添加别名,以获得所需的说明。

例如:添加一行alias my-alias="mvn clean install"将允许您在终端中执行命令my-alias ,获得与运行mvn clean install指令本身相同的结果。 添加另一行alias my-alias-port="mvn clean install -Dcrx.port=9200"作为第二条指令,依此类推。

或者,您可以执行alias查看所有别名的列表及其各自的说明。

我发现的最佳解决方案是使用以下组合:

大致按照这个优先顺序。

GNU Make 特别好,因为它提供了 bash 补全。

您的特定示例的示例 Makefile 将是:

.PHONEY: server

server:
[tab]mvn clean package tomcat:run

将 [tab] 替换为真正的选项卡! 请参阅制作文档。

然后你可以运行:

make server

对于 Windows 环境,您需要安装 cygwin 或类似的东西。 对于 Mac,您不必安装,但您可能应该安装 homebrew。

最后, Maven Bash 完成虽然不做别名,但会极大地方便输入 Maven 命令(按 Tab)。 许多包管理器将其作为一个包(即自制程序将其作为 maven-completion)。

您还可以将以下函数添加到.bashrc文件中:

function mvn() {
  if [ "$1" = "i" ]; then
    command mvn install
  else
    command mvn $@
  fi
}

因此,您可以使用mvn i别名调用mvn install

其他不是mvn i都会调用原始的mvn命令。

Alias-maven-plugin是您正在寻找的。

关注网站:

例如,每当您在 shell 中键入命令时

mvn clean install

您可以花时间简单地使用这样的别名

i

它还有更多的优点——你可以通过 XML 文件配置插件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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