我正在配置maven项目,我想为目标集创建别名。 示例:mvn server - 执行mvn clean package tomcat:run
Grunt任务运行员做得很好,但我还没有找到一种方法在maven中做同样的事情。
答案 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正是您要找的。 p>
关注网站:
每当您在shell中键入命令时,例如
mvn clean install
你可以节省时间,只需使用像这样的别名
i
它还有更多优点 - 您可以通过XML文件配置插件。
答案 3 :(得分:0)
我发现的最佳解决方案是使用以下组合:
project/.mvn/maven.config
大致按照优先顺序排列。
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
命令。