3

我有网络应用程序。我正在使用 Maven 来构建这个应用程序。我在构建应用程序时得到一个war文件:my-service-1.0.0-SNAPSHOT.war。通过 http 访问服务时,我必须这样调用:

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

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

4

2 回答 2

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>
于 2013-10-01T19:35:04.647 回答
1

您没有提到您是否使用 maven 部署到 tomcat 容器中。如果您正在创建生产环境,您可能至少不会将 maven 用于本地部署。在这种情况下,我认为重命名您的战争文件不是一个坏主意。例如,如果您希望 webapp 根目录位于https://mydomain.com/subdomain/myteam/myapp ,那么只需将 my-service-1.0.0-SNAPSHOT.war 重命名为 subdomain#myteam#myapp.war 并使用 '/'被“#”替换

于 2013-10-01T23:39:53.643 回答