• 使用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


  • 相关阅读:
    卷积神经网络-目标探测-笔记
    卷积神经网络-目标分类简述
    深度学习-卷积神经网络的发展-笔记
    深度学习-卷积神经网络笔记
    深度学习-传统神经网络
    深度学习-初识深度学习-笔记
    数据结构-链式队列-C++
    查看线程的id名字正在运行的线程数量[getName()--ident--enumerate--activeCount]--线程池--协程(gevent)--优先级队列(LifoQueue)
    线程-线程的(锁、死锁现象、守护线程)
    ftp(网络传输)--BaseRequesHandler(tcp协议下的多个客户端连接)--urandom(随机生成字节字符串)--hmac(类似于hashlib)
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7301442.html
Copyright © 2020-2023  润新知