我将其添加为答案,因为它包含代码,但它主要是对 gerrytan 答案的扩展。
如果您使用的是 Azure Eclipse 插件,您可以在 Azure 部署项目中编辑 package.xml,以便 eclipse 自动构建您的 war 并将其重命名为 ROOT.war,然后再将其放入部署项目中。
在 package.xml 的末尾附近,您应该有这样的一行:
<component cloudmethod="copy" cloudsrc="auto" cloudupload="always" deploydir="%SERVER_APPS_LOCATION%" deploymethod="copy" importas="<my_app.war>" importmethod="auto" importsrc="<path to my_app project>" type="server.app"/>
(它应该在workerrole标签内)
在这一行中,将“”替换为“ROOT.war”,如下所示:
<component cloudmethod="copy" cloudsrc="auto" cloudupload="always" deploydir="%SERVER_APPS_LOCATION%" deploymethod="copy" importas="ROOT.war" importmethod="auto" importsrc="<path to my_app project>" type="server.app"/>
并从部署中删除旧的 my_app.war。下次部署时,您的应用程序将部署为 ROOT。正如gerrytan所说,请确保/webapps/ROOT
事先删除tomcat中的文件夹。
编辑:
另一个警告 - 如果您的应用程序包含 .gitignore 文件(或类似的点文件/目录,如 .svn),请添加<defaultexcludes remove="**/.gitignore"/>
到 windowsazurepackage taskdef 下的 package.xml。
如果没有这个,Azure 插件(使用 Ant)不会删除 Azure 部署之间的 .gitignore 文件。这意味着当删除其他所有内容时,webapp 文件夹中的应用程序文件夹仍然存在。重新部署 Azure 时,tomcat 不会重新部署应用程序,因为它看到应用程序的文件夹在那里。