Mavenを使用したモジュールJARの作成

Mavenを使って最初からビルドした既存のLiferayモジュールがある場合や、MavenプロジェクトをLiferay DXPの以前のバージョンからアップグレードする場合に、プロジェクトが実行可能なOSGi JARを作成できない可能性があります。これを回避するには、モジュールのPOMにマイナー設定をいくつか作成します。

この方法について、以下で説明します。

  1. プロジェクトのpom.xmlファイルに、以下のBND Maven Plugin宣言を追加します。

    <plugin>
    <groupId>biz.aQute.bnd</groupId>
    <artifactId>bnd-maven-plugin</artifactId>
    <version>3.3.0</version>
    <executions>
    <execution>
    <goals>
    <goal>bnd-process</goal>
    </goals>
    </execution>
    </executions>
    <dependencies>
    <dependency>
    <groupId>biz.aQute.bnd</groupId>
    <artifactId>biz.aQute.bndlib</artifactId>
    <version>3.2.0</version>
    </dependency>
    <dependency>
    <groupId>com.liferay</groupId>
    <artifactId>com.liferay.ant.bnd</artifactId>
    <version>2.0.41</version>
    </dependency>
    </dependencies>
    </plugin>
    

    BND Mavenプラグインは、Mavenモジュールのすべてのリソース(例: MANIFEST.MF)を準備し、作成された[Maven Project]/target/classesフォルダに挿入します。このプラグインは、モジュールがLiferay DXPにデプロイ可能なOSGi JARとしてパッケージ化されるように準備します。

  2. プロジェクトのpom.xmlファイルに、以下のMaven JAR Plugin宣言を追加します。

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.6</version>
    <configuration>
    <archive>
    <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
    </archive>
    </configuration>
    </plugin>
    </plugins>
    </build>
    

    Maven JARプラグインは、BND Mavenプラグインによって作成されたリソースを含んだJARファイルとして、Mavenプロジェクトをビルドします。上記の設定では、対象のプロジェクト用にデフォルトのプロジェクトMANIFEST.MFのファイルパスも設定します。これは、BND Mavenプラグインを使用してモジュールをパッケージ化する場合に不可欠です。デフォルトでは、Maven JAR PluginはBND Mavenプラグインによって作成されたtarget/classes/META-INF/MANIFEST.MFを無視します。そのため、作成されたJARファイルに適切に含まれるように、マニフェストファイルとして明示的に設定する必要があります。

  3. Liferay Mavenプロジェクトにbnd.bndファイルを追加し、プロジェクトのpom.xmlファイルと同じフォルダにあることを確認してください。

  4. 以下を実行して、Maven OSGi JARをビルドします。

    mvn package
    

    これで、Maven JARがプロジェクトの/targetフォルダに作成されます。Liferay DXPの/deployフォルダに手動でデプロイすることもできます。また、Deploying a Project Built with Maven to Liferay DXPのチュートリアルに従うと、プロジェクトを自動でLiferay DXPにデプロイするように設定できます。

これで、Liferay Mavenプロジェクトをデプロイ可能なOSGiモジュールにパッケージ化するように設定できました。

« アーキタイプを使用した新しいプロジェクトの作成MavenでビルドされたプロジェクトをLiferay DXPにデプロイする »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています