使用maven开发OSGI样例
一:创建maven项目,在pom.xml里面增加例如以下依赖
<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 package,就可以生成含有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
或者把package声明为bundle
如:<packaging>bundle</packaging>
然后。就能够直接使用mvn clean package
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架