codestory

Erstellen Sie ein Java OSGi-Projekt mit Maven und Tycho

  1. Die Vorstellung
  2. Das OSGi Projekt erstellen (SimpleOSGi)
  3. OSGi laufen (SimpleOSGi)
  4. Ein Maven Project erstellen (SimpleMaven)
  5. Erstellen Sie MavenParent Project
  6. Auf OSGi Projekt konfigurieren (SimpleOSGi)
  7. Die Konfiguration auf Maven Projekt (SimpleMaven)
  8. Auf Maven Parent konfigurieren
  9. Building

1. Die Vorstellung

Der Unterlagen wird nach ... geschrieben
  • Eclipse 3.4 (LUNA)
  • Tycho 0.20.0
Zuerst stellen Sie sicher, dass Sie Tycho in die Eclipse installiert haben. Wenn nicht, Sie können die Anleitung hier schauen

2. Das OSGi Projekt erstellen (SimpleOSGi)

Zuerst erstellen wir schnell ein OSGi project in die normale Weise.
Geben Sie ein
  • Version: 2.0.0.qualifier
  • Activator: org.o7planning.tutorial.simpleosgi.Activator
Add:
  • org.eclipse.osgi
  • org.eclipse.equinox.console
  • org.apache.felix.gogo.command
  • org.apache.felix.gogo.runtime
  • org.apache.felix.gogo.shell
Activator.java
package org.o7planning.tutorial.simpleosgi;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {

   private static BundleContext context;

   static BundleContext getContext() {
       return context;
   }

   public void start(BundleContext bundleContext) throws Exception {
       Activator.context = bundleContext;
       System.out.println("SimpleOSGi Started");
   }


   public void stop(BundleContext bundleContext) throws Exception {
       Activator.context = null;
       System.out.println("SimpleOSGi Stopped");
   }

}

3. OSGi laufen (SimpleOSGi)

Wir konfigurieren schnell und starten dieses OSGi um zu sehen, dass der Zustand von erstellten OSGi gut ist.
Drücken Sie die Rechtmaustaste auf das Project SimpleOSGi, und wählen Sie "Run As/Run Configuration.."
Starten OSGi und es läuft gut.

4. Ein Maven Project erstellen (SimpleMaven)

Zunächst erstellen wir schnell ein Maven Project. Das Ziel ist, dass wir später 2 Project Maven Project & Osgi Project , bauen, die Maven & Tycho benutzen. Und zeigt, dass 2 Projekt die Gleichbehandlung haben.
CheckNumeric.java
package org.o7planning.tutorial.simplemaven;

import org.apache.commons.lang3.StringUtils;

public class CheckNumeric {

   public static void main(String[] args) {
       String text1 = "0123a4";
       String text2 = "01234";

       boolean result1 = StringUtils.isNumeric(text1);
       boolean result2 = StringUtils.isNumeric(text2);

       System.out.println(text1 + " is a numeric? " + result1);
       System.out.println(text1 + " is a numeric? " + result2);
   }
}
pom.xml
<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>org.o7planning</groupId>
   <artifactId>SimpleMaven</artifactId>
   <version>3.0.0-SNAPSHOT</version>


   <dependencies>
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
           <version>3.3.2</version>
       </dependency>
   </dependencies>

</project>

5. Erstellen Sie MavenParent Project

Das Zweck von diesem Projekt ist Maven & Tycho konfigurieren um 2 oben Projekt zu bauen (build) (SimpleOSGi & SimpleMaven)
Erstellen Sie ein normales Projekt

6. Auf OSGi Projekt konfigurieren (SimpleOSGi)

Zuerst wandeln Sie vom SimpleOSGi Projekt zum Maven Project um. Deshalb ist SimpleOSGi auch ein OSGi project und auch Maven project.
Das Projekt wird zum Maven Projekt umgewandelt und hat eine Fehleranmeldung. Dafür sollen Sie keine Sorge
Beachten Sie: Wenn Ihr OSGi mit der Version AAA und mit der Ende von qualifier hat, sollen Ihr Maven auf die File pom.xml konfigurieren,dass das Projekt mit der Version AAA und der Ende von SNAPSHOT hat. Wie das folgende Beispiel.
Öffnen Sie die File pom.xml und konfigurieren Sie wieder
SimpleOSGi/pom.xml
<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>org.o7planning</groupId>
<artifactId>SimpleOSGi</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>


    <parent>  
      <groupId>org.o7planning</groupId>
      <artifactId>MavenParent</artifactId>
      <version>1.0.0</version>
      <relativePath>../MavenParent/pom.xml</relativePath>
  </parent>
 
</project>

7. Die Konfiguration auf Maven Projekt (SimpleMaven)

Öffnen Sie die File pom.xml auf das Project SimpleMaven und fügen Sie die folgende Code hinzu:
**
<parent>  
       <groupId>org.o7planning</groupId>
       <artifactId>MavenParent</artifactId>
       <version>1.0.0</version>
       <relativePath>../MavenParent/pom.xml</relativePath>
   </parent>
SimpleMaven/pom.xml
<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>org.o7planning</groupId>
   <artifactId>SimpleMaven</artifactId>
   <version>3.0.0-SNAPSHOT</version>


   <dependencies>
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
           <version>3.3.2</version>
       </dependency>
   </dependencies>
   
   <parent>
       <groupId>org.o7planning</groupId>
       <artifactId>MavenParent</artifactId>
       <version>1.0.0</version>
       <relativePath>../MavenParent/pom.xml</relativePath>
   </parent>
   
</project>

8. Auf Maven Parent konfigurieren

MavenParent/pom.xml
<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>org.o7planning</groupId>
 <artifactId>MavenParent</artifactId>
 <version>1.0.0</version>
 <packaging>pom</packaging>


     <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <!-- 0.22.0 : Target location type: Directory is not supported -->
       <tycho-version>0.22.0</tycho-version>
   </properties>


   <repositories>
       <!-- Select the P2 repository to be used when resolving dependencies -->

       <repository>
           <id>eclipse-luna</id>
           <layout>p2</layout>
           <url>http://download.eclipse.org/releases/luna</url>
       </repository>

   </repositories>

   <pluginRepositories>
       <pluginRepository>
           <id>tycho-snapshots</id>
           <url>https://oss.sonatype.org/content/groups/public/</url>
       </pluginRepository>
   </pluginRepositories>
   
   <build>
       <plugins>
           <plugin>
               <!-- enable tycho build extension -->
               <groupId>org.eclipse.tycho</groupId>
               <artifactId>tycho-maven-plugin</artifactId>
               <version>${tycho-version}</version>
               <extensions>true</extensions>
               <configuration>
                   <dependency-resolution>
                       <optionalDependencies>ignore</optionalDependencies>
                   </dependency-resolution>
               </configuration>
           </plugin>

           <plugin>
               <groupId>org.eclipse.tycho</groupId>
               <artifactId>tycho-versions-plugin</artifactId>
               <version>${tycho-version}</version>
               <configuration>
                   <dependency-resolution>
                       <optionalDependencies>ignore</optionalDependencies>
                   </dependency-resolution>
               </configuration>
           </plugin>
<!--
           <plugin>
               <groupId>org.eclipse.tycho</groupId>
               <artifactId>target-platform-configuration</artifactId>
               <version>${tycho-version}</version>
               <configuration>
                   <target>
                       <artifact>
                           <groupId>org.o7planning</groupId>
                           <artifactId>TargetPlatform</artifactId>
                           <version>1.0.0</version>
                       </artifact>
                   </target>
               </configuration>
           </plugin>
-->
           
       </plugins>
   </build>

   <modules>  
       <module>../SimpleMaven</module>
       <module>../SimpleOSGi</module>      
   </modules>
   
       
</project>

9. Building

Drücken Sie die Rechtsmaustaste auf MavenParent und wählen Sie Run As/Maven Install.