Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为一组目标创建maven别名_Java_Maven_Build - Fatal编程技术网

Java 如何为一组目标创建maven别名

Java 如何为一组目标创建maven别名,java,maven,build,Java,Maven,Build,我正在配置一个maven项目,我想为一组目标创建别名。 示例:mvn服务器-执行mvn清理包tomcat:run Grunt task runner做得很好,但我还没有在maven中找到同样的方法。如果愿意,可以在pom中定义一个。所以你可以这样定义: 清理包tomcat:run . 如果您只需调用mvn…将被激活。这不是真正的别名,因为通常您不需要别名…正是您需要的 下列网址: 例如,每当您在shell中键入命令时 mvn clean install 只需使用这样的别名,您就可以腾出时间

我正在配置一个maven项目,我想为一组目标创建别名。 示例:mvn服务器-执行mvn清理包tomcat:run

Grunt task runner做得很好,但我还没有在maven中找到同样的方法。

如果愿意,可以在pom中定义一个。所以你可以这样定义:


清理包tomcat:run
.
如果您只需调用
mvn
…将被激活。这不是真正的别名,因为通常您不需要别名…

正是您需要的

下列网址:

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

mvn clean install
只需使用这样的别名,您就可以腾出时间

i

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

开箱即用,我不知道有任何解决方案不意味着使用插件。一个简单的解决方案可能是将别名添加到主目录中的
.bashrc
文件(对于Linux)或
.bash\u profile
(在OS X上)以获得所需的说明

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


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

我找到的最佳解决方案是结合使用以下各项:

  • gnumake(然后称为maven)
  • Bash脚本
大致按照优先顺序

gnumake特别好,因为它提供了bash完成

特定示例的示例Makefile如下所示:

.PHONEY: server

server:
[tab]mvn clean package tomcat:run
将[tab]替换为真正的tab!请参见制作文档

然后您可以运行:

make server
对于windows环境,您需要安装cygwin或类似的软件。对于Mac,您不必这样做,但您可能应该安装自制软件


最后,虽然不使用别名,但将极大地方便键入maven命令(按tab键)。许多软件包管理器都将此作为软件包(即homebrew将其作为maven completion)。

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

function mvn() {
  if [ "$1" = "i" ]; then
    command mvn install
  else
    command mvn $@
  fi
}
因此,您可以使用
mvni
别名调用
mvn安装


所有不是
mvn i
的东西都将调用原始的
mvn
命令。

我已经在使用defaultGoal,但我想创建多个别名goals,您在问题中没有描述这些别名goals。