1

私は信じられないほど単純な (Java ファイルなし) war ファイルを作成しました。これを servicemix にデプロイしたいと考えています。次のディレクトリ構造があります。

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

次のコマンドを使用して、ServiceMix で実行されている jetty コンテナーにこれをデプロイできます。

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

私が好むのは、残りのバンドルと同じようにホットデプロイすることです。pom.xml はどのように見えるべきですか? シンプルなほど良い。

4

2 に答える 2

2

同様の要件がありました (ServiceMix ではなく、Karaf のみ)。私は次のようになります。

編集:追加のバンドル プラグイン構成については、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>
于 2012-08-15T13:04:49.533 に答える
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>
于 2012-08-15T13:41:06.233 に答える