2014-01-13 2 views
1

Я новичок в OSGI и Maven и пытаюсь выяснить, как создать проект maven-osgi в Eclipse. Я следил за учебниками и умел сделать проект maven, а также проект OSGI, но я не могу создать проект, в котором содержатся оба из них.Eclipse - как сделать проект Maven + OSGI?

Насколько я понимаю, наиболее важной частью проекта OSGI является manifest.mf. В моем OSGI проекте у меня есть это:

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Osgi 
Bundle-SymbolicName: osgi 
Bundle-Version: 1.0.0.qualifier 
Bundle-Activator: osgi.Activator 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
Import-Package: org.osgi.framework;version="1.3.0" 

И самая Importand часть проекта Maven является pom.xml. В моем 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> 

    <groupId>com.videobet.test</groupId> 
    <artifactId>quick</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>quick</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

Теперь, чтобы объединить эти два я пытался сделать проект Maven первым, а затем редактировать pom.xml так бы добавить зависимостей проекта OSGI и сделать явным. миллифарада Для этого я попытался добавить что-то вроде этого:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
    <archive> 
     <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> 
    </archive> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>bundle-manifest</id> 
     <phase>process-classes</phase> 
     <goals>  
     <goal>manifest</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

Но я не увенчался успехом. Прежде всего, я получил ошибку:

Plugin execution not covered by lifecycle configuration: org.apache.felix:maven-bundle-plugin:2.4.0:manifest (execution: bundle-manifest, phase: process-classes) 

и даже если бы я мог решить, что я не уверен, что это сработает. Я также нашел различные плагины типа tycho, которые должны помочь с задачей, но я действительно не хочу их использовать. Я хочу держать все как можно более стандартным и делать все, поэтому я в конечном итоге пойму, что им делать :)

Любая помощь будет оценена!

+1

Вам необходимо установить тип упаковки «расслоение». И maven-bundle-plugin генерирует MANIFEST.MF и помещает его в Jar для вас, нет необходимости использовать отдельный плагин для сборки Jar снова. –

+0

Извините, не совсем понял, вы можете немного опустить его для меня? :) – user1985273

+1

Выньте весь раздел '' где он sasy maven-jar-plugin. Изменить ' jar' '' bundle ' –

ответ

1

Существует другой способ создания связок с Maven, чтобы взглянуть на Maven Tycho. Если вы хотите работать и развертывание с Eclipse, окружающей среды, то вы также можете использовать этот учебник: http://www.vogella.com/tutorials/EclipseTycho/article.html

Это Manifest первый подход. С Maven Tycho вы можете создать свой собственный репозиторий P2 (а также ZIP-файл) для разных приложений для импорта в других средах RCP Eclipse.

0

Существует видео, который помогает начать работу, чтобы сделать приложение с Eclipse, + Maven + OSGi в https://www.youtube.com/watch?v=JNH6JVmAcIQ&t=432s

Видео начинается со свежим Затмением и пустым проектом Maven, так что если вы делаете те же шаги, что должен работать на вас.

Также есть поваренная книга на http://cookbook.everit.org/ Цель поваренной книги, чтобы помочь людям начать работу с OSGi на основе Maven (и, возможно, на Eclipse).

Поваренная книга не обновлялась некоторое время, так как она ждала eclipse plugin. Поскольку плагин Eclipse работает сейчас, кулинарная книга будет скоро переписана.

Смежные вопросы