如何为目标集创建maven别名

时间:2015-09-06 15:20:28

标签: java maven build

我正在配置maven项目,我想为目标集创建别名。 示例:mvn server - 执行mvn clean package tomcat:run

Grunt任务运行员做得很好,但我还没有找到一种方法在maven中做同样的事情。

5 个答案:

答案 0 :(得分:1)

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

<project>
  <build>
    <defaultGoal>clean package tomcat:run</defaultGoal>
    .
  </build>
</project>
如果您只是致电mvn而不是真正的别名,

将被激活,因为通常您不需要...

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

Alias-maven-plugin正是您要找的。

关注网站:

  

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

mvn clean install
     

你可以节省时间,只需使用像这样的别名

i

它还有更多优点 - 您可以通过XML文件配置插件。

答案 3 :(得分:0)

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

大致按照优先顺序排列。

GNU Make特别好用,因为它提供了bash完成功能。

您的具体示例的示例Makefile将是:

setNodeValue()

用真正的标签替换[tab]!请参阅make documentation。

然后你可以运行:

.....
String masterColumnName = masterColumnNode.getAttributes().getNamedItem("name").getNodeValue();
for (int j = 0; j < customerColumnList.getLength(); j++){
      Node customerColumnNode = customerColumnList.item(j);
      String customerColumnName = customerColumnNode.getAttributes().getNamedItem("name").getNodeValue();

      // Check for Match
      if (masterColumnName.equals(customerColumnName)){
          // Get Master & Customer Attributes
          NamedNodeMap masterColumnAttr = masterColumnNode.getAttributes();
          NamedNodeMap customerColumnAttr = customerColumnNode.getAttributes();

          customerColumnNode.<NO WAY TO DO> = masterColumnAttr.getNamedItem("function").getNodeValue();

......

对于Windows环境,您需要安装cygwin或类似的东西。对于Mac你不必,但你应该安装自制软件。

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

答案 4 :(得分:0)

您还可以将以下功能添加到.bashrc文件中:

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

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

不是mvn i的所有其他项都将调用原始的mvn命令。