мне нужно, чтобы создать пакет OSGi включают зависимости, я использую Maven-сборочный-плагин, и это мой pom.xmlСложение OSGi расслоения включают зависимостей с Maven-сборки-плагин
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>logstat</artifactId>
<packaging>bundle</packaging>
<name>Log Stat Demo</name>
<version>1.0</version>
<groupId>org.test</groupId>
<dependencies>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>yecht</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<version>2.2.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>activator.*,service.*,impl.*</Export-Package>
<Bundle-Activator>activator.Activator</Bundle-Activator>
</instructions>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>activator.Activator</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Когда я запустить Maven сборки, он создал 2 фляг файл, один с зависимостями и один без
Но в один с зависимостями, то MANIFEST.MF не включают в себя конфигурацию OSGi как:
Manifest-Version: 1.0
Bnd-LastModified: 1392281245886
Build-Jdk: 1.6.0_45
Built-By: myname
Bundle-Activator: activator.Activator
Bundle-ManifestVersion: 2
Bundle-Name: test
Bundle-SymbolicName: org.wiperdog.logstat
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: activator;uses:="org.osgi.framework";version="1.0.0",ser
vice;version="1.0.0",impl;uses:="org.osgi.framework,service";version="1
.0.0"
Import-Package: org.jruby.embed;version="[1.7,2)",org.jruby.embed.osgi;v
ersion="[1.7,2)",org.osgi.framework;version="[1.6,2)"
Tool: Bnd-2.1.0.20130426-122213
это просто сома e basic, а не комплект OSGi:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Build-Jdk: 1.6.0_45
Main-Class: activator.Activator
Итак, как мне настроить?
Ну, ну, если вы хотите, чтобы ваши личные отношения внутри пакета (хотя и возможны, если вы являетесь частным пакетом), не рекомендуется. OSGi - это все о модульности. Почему вы хотите поместить все ваши зависимости в комплект? – codesalsa
В чем причина использования плагина сборки? maven-bundle-plugin имеет встроенную функцию зависимостей. При этом вы можете управлять, какой пакет должен быть экспортирован из встроенных зависимостей. –
Спасибо, я хочу поставить некоторые классы зависимостей, потому что я хочу запустить некоторый ruby-скрипт в среде osgi, и скрипту нужно использовать некоторые классы из log4j, поэтому мне нужно включить что-то вроде: require "org.apache.log4j.spi. LoggingEvent» – Ryo