我是网络应用程序。我正在使用maven来构建这个应用程序。当我构建应用程序时,我得到一个war文件:my-service-1.0.0-SNAPSHOT.war。在通过http访问服务时,我必须拨打这样的电话:
http://localhost:8080/my-service-1.0.0-SNAPSHOT/......
我不想在我的上下文名称中使用版本号。我正在使用tomcat作为容器。在jboss的情况下,我是否必须在Web-Inf下为此设置上下文根?它取决于我们使用的容器类型吗?
答案 0 :(得分:3)
使用maven,您可以在pom.xml文件中设置一个变量来存储您的最终构建名称,并在您传递它的war插件配置中。像这样:
<build>
<finalName>my-service</finalName>
</build>
然后在你的插件配置中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
<configuration>
<webappDirectory>/path_to_deploy_folder/${project.build.finalName}.war</webappDirectory>
</configuration>
</plugin>
答案 1 :(得分:1)
您没有提到是否使用maven部署到tomcat容器中。如果您正在创建生产环境,则可能至少在本地部署时不会使用maven。在这种情况下,我认为重命名war文件并不是一个坏主意。例如,如果您希望webapp root位于https://mydomain.com/subdomain/myteam/myapp,则只需将my-service-1.0.0-SNAPSHOT.war重命名为子域#myteam#myapp.war,并将'/'替换为'#'