mavenを用いたOSGIの開発例
一:mavenプロジェクトを作成しpom.xmlに次の依存を加える
com.lala.Activator.javaは
二:プラグインの構成
方法1:
そして、mvnパッケージを実行することで、MANIFEST.MFファイルを含むjarを生成する
方法2:
次に、
mvn clean org.apache.felix:maven-bundle-plugin:bundle , MANIFEST.MFファイルを含むjarを生成する
パッケージをbundleと宣言するか
例:bundle
その後、mvn clean packageを直接使用できます.
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi</artifactId>
<version>3.0.0</version>
<type>jar</type>
</dependency>
com.lala.Activator.javaは
package com.lala;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator
{
public void start(BundleContext context) throws Exception
{
System.out.println("-----------start----------");
}
public void stop(BundleContext context) throws Exception
{
System.out.println("-----------stop----------");
}
}
二:プラグインの構成
方法1:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifestEntries>
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
<Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}
</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Bundle-Vendor>${project.groupId}</Bundle-Vendor>
<Bundle-Activator>com.lala.Activator</Bundle-Activator>
<Export-Package>
com.lala.api
</Export-Package>
<Import-Package>
org.osgi.framework
</Import-Package>
</manifestEntries>
</archive>
</configuration>
</plugin>
そして、mvnパッケージを実行することで、MANIFEST.MFファイルを含むjarを生成する
方法2:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
<Bundle-Name>${project.groupId}.${project.ArtifactId}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.ArtifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Bundle-Vendor>${project.groupId}</Bundle-Vendor>
<Export-Package>com.lala.api</Export-Package>
<Bundle-Activator>com.lala.Activator</Bundle-Activator>
<Import-Package>org.osgi.framework</Import-Package>
</instructions>
</configuration>
</plugin>
次に、
mvn clean org.apache.felix:maven-bundle-plugin:bundle , MANIFEST.MFファイルを含むjarを生成する
パッケージをbundleと宣言するか
例:
その後、mvn clean packageを直接使用できます.