2015-12-14 65 views
0

當部署版本化的戰爭進行集成測試時,我該如何操縱這些戰爭的名稱超出我的控制範圍的上下文。如何使用tomee-maven-plugin設置已部署應用程序的自定義上下文路徑?

例如:

<groupId>org.apache.openejb.maven</groupId> 
<artifactId>tomee-maven-plugin</artifactId> 
<version>1.7.2</version> 

<configuration> 
    <tomeeVersion>1.7.2</tomeeVersion> 
    <path>/integration-adapter</path> 
    <tomeeClassifier>plus</tomeeClassifier> 
    <tomeeHttpPort>25180</tomeeHttpPort> 
    <systemVariables> 
       <org.slf4j.simpleLogger.defaultLogLevel>debug</org.slf4j.simpleLogger.defaultLogLevel> 
       <org.apache.deltaspike.ProjectStage>IntegrationTest</org.apache.deltaspike.ProjectStage> 
    </systemVariables> 
    <webapps> 
     <webapp>**com.mycom.backend:some-war:1.0.0-SNAPSHOT**</webapp> 
    </webapps> 
</configuration> 

我的問題是,所包含的戰爭文件部署與上下文中的例如版本。 http://127.0.0.1:8080/some-war-1.0.0-SNAPSHOT/

如何在使用tomee插件進行部署時對其進行重命名?

例如。 http://127.0.0.1:8080/some-war/

只是爲了重申,這些戰爭並不是我當前生成的構件,而是我構建的一部分。

感謝

回答

2

您可以指定自己的(自定義)上下文路徑解決這個問題。這可以在<webapp>標籤內通過在完全合格的war文件名的字符串末尾附加...?name=some-webui來實現。

將所得插件配置塊然後將:然後

<plugin> 
    <groupId>org.apache.openejb.maven</groupId> 
    <artifactId>tomee-maven-plugin</artifactId> 
    <version>1.7.2</version> 
    <configuration> 
     <tomeeVersion>1.7.2</tomeeVersion> 
     <path>/integration-adapter</path> 
     <tomeeClassifier>plus</tomeeClassifier> 
     <tomeeHttpPort>8080</tomeeHttpPort> 
     <systemVariables> 
      <org.slf4j.simpleLogger.defaultLogLevel>debug</org.slf4j.simpleLogger.defaultLogLevel> 
      <org.apache.deltaspike.ProjectStage>IntegrationTest</org.apache.deltaspike.ProjectStage> 
     </systemVariables> 
     <debugPort>5005</debugPort> 
     <args>-Dfoo=bar</args> 
     <webapps> 
      <webapp>com.mycom.ws:some-war:1.0.0-SNAPSHOT?name=some-webservices</webapp>  
      <webapp>com.mycom.webui:some-war:1.0.0-SNAPSHOT?name=some-webui</webapp>  
     </webapps> 
    </configuration> 
</plugin> 

將所得的URL應該是:

具有以下屬性部分

... 
    <webapp>com.mycom.ws:${webservice.artifact.name}:${webservice.artifact.version}?name=some-webservices</webapp> 
    ... 

此外,您可以通過使用maven屬性是外化的名稱/版本信息

<properties> 
    <webservice.artifact.name>${project.artifactId}</webservice.artifact.name> 
    <webservice.artifact.version>${project.version}</webservice.artifact.version> 
</properties> 
相關問題