2012-08-15 86 views
1

我寫了一個令人難以置信的簡單(無java文件)war文件,我希望將其部署到servicemix。它具有以下目錄結構:在ServiceMix中部署簡單的war作爲OSGi軟件包

. 
|-src 
    |-main 
    |-webapp 
     |-css 
     |-js 
     |-WEB-INF 
     \-web.xml 
     \-index.html 
\-pom.xml 

我可以使用下面的命令在ServiceMix的這一部署到碼頭容器中運行:

>install war:file:///<Fully qualified war location>?Webapp-Context=<Application name> 
>osgi:start <Bundle id> 
>http://localhost:8181/<Application name>/index.html 

我寧願什麼是熱部署,因爲我與我的其他包捆綁在一起。 pom.xml應該是什麼樣子?越簡單越好。

回答

1

這已經爲我做過的伎倆(雖然我也需要添加一個佔位符的java文件,以確保目標/類生成):

<plugins> 
    <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <configuration> 
      <archive> 
       <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> 
      </archive> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.felix</groupId> 
     <artifactId>maven-bundle-plugin</artifactId> 
     <executions> 
      <execution> 
       <id>bundle-manifest</id> 
       <phase>process-classes</phase> 
       <goals> 
        <goal>manifest</goal> 
       </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <supportedProjectTypes> 
       <supportedProjectType>jar</supportedProjectType> 
       <supportedProjectType>bundle</supportedProjectType> 
       <supportedProjectType>war</supportedProjectType> 
      </supportedProjectTypes> 
      <instructions> 
       <Bundle-Version>${pom.version}</Bundle-Version> 
       <Webapp-Context>webclient</Webapp-Context> 
       <_include>-osgi.bnd</_include> 
      </instructions> 
     </configuration> 
    </plugin> 
</plugins> 
2

我有一個類似的要求(只是卡拉夫,而不是ServiceMix)。我看起來像這樣:

編輯:請參閱ben1729的添加捆綁插件配置的答案。我忘記了那部分,因爲它在我的父pom.xml中,用於我所有的模塊。

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <archive> 
        <!-- add the generated manifest to the war --> 
        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> 
       </archive> 
       <overlays> 
        <overlay> 
        <!-- empty groupId/artifactId represents the current build --> 
         <excludes> 
          <exclude>*</exclude> 
         </excludes> 
        </overlay> 
       </overlays> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <configuration> 
       <instructions> 
        <Web-ContextPath>/base/url</Web-ContextPath> 
       </instructions> 
      </configuration> 
     </plugin> 
    </plugins>