避免Web应用程序的上下文根中的版本号

时间:2013-10-01 18:59:44

标签: java maven java-ee tomcat web-applications

我是网络应用程序。我正在使用maven来构建这个应用程序。当我构建应用程序时,我得到一个war文件:my-service-1.0.0-SNAPSHOT.war。在通过http访问服务时,我必须拨打这样的电话:

 http://localhost:8080/my-service-1.0.0-SNAPSHOT/......

我不想在我的上下文名称中使用版本号。我正在使用tomcat作为容器。在jboss的情况下,我是否必须在Web-Inf下为此设置上下文根?它取决于我们使用的容器类型吗?

2 个答案:

答案 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,并将'/'替换为'#'