Maven - Building Java OSGi Project with Maven and Tycho - maven tutorial




1- Introduction

  • This document is based on:
  • Eclipse 3.4 (LUNA)
  • Tycho 0.20.0
  • We must first ensure that you have installed Tycho on Eclipse. If not installed you can see the instructions here:
maven tutorial tags : apache maven , maven repository , maven central

2- Quick Create OSGi Project (SimpleOSGi)

  • First we create an OSGi project quickly accordance usual way.
 learn maven tutorial - quick create osgi project step1 - maven example

learn maven tutorial - quick create maven project step1 - maven example

 learn maven tutorial - quick create osgi project step2 - maven example

learn maven tutorial - quick create maven project step2 - maven example

  • Enter:
  • Version: 2.0.0.qualifier
  • Activator: wikitechy.simpleosgi.Activator
 learn maven tutorial - quick create osgi project step3 - maven example

learn maven tutorial - quick create maven project step3 - maven example

 learn maven tutorial - quick create osgi project step4 - maven example

learn maven tutorial - quick create maven project step4 - maven example

  • Add:
  • org.eclipse.osgi
  • org.eclipse.equinox.console
  • org.apache.felix.gogo.command
  • org.apache.felix.gogo.runtime
  • org.apache.felix.gogo.shell
 learn maven tutorial - quick create osgi project step5 - maven example

learn maven tutorial - quick create maven project step5 - maven example

Activator.java

maven tutorial tags : apache maven , maven repository , maven central

sample code

package wikitechy.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");
   }
 
}

2.1- Run OSGi (SimpleOSGi)

  • We'll quickly configure and run this OSGi, to see that the status of the OSGi just created is good.
  • Right-click on the Project SimpleOSGi, select "Run As / Run Configuration .."
 learn maven tutorial - run osgi step1 - maven example

learn maven tutorial - run osgi step1 - maven example

 learn maven tutorial - run osgi step2 - maven example

learn maven tutorial - run osgi step2 - maven example

 learn maven tutorial - run osgi step3 - maven example

learn maven tutorial - run osgi step3 - maven example

 learn maven tutorial - run osgi step4 - maven example

learn maven tutorial - run osgi step4 - maven example

  • Running OSGi, and get successful results.
 learn maven tutorial - run osgi step5 - maven example

learn maven tutorial - run osgi step5 - maven example

3- Quick Create Maven Project (SimpleMaven)

  • Next we will quick create Maven Project. Goals for the future, we will build 2 project (SimpleOSGi & SimpleMaven) with Maven & Tycho. And see that both project to be treated equally.
 learn maven tutorial - quick create maven project step1- maven example

learn maven tutorial - quick create maven project step1- maven example

 learn maven tutorial - quick create maven project step2 - maven example

learn maven tutorial - quick create maven project step2 - maven example

 learn maven tutorial - quick create maven project step3 - maven example

learn maven tutorial - quick create maven project step3 - maven example

 learn maven tutorial - quick create maven project step4 - maven example

learn maven tutorial - quick create maven project step4 - maven example

 learn maven tutorial - quick create maven project step5 - maven example

learn maven tutorial - quick create maven project step5 - maven example

maven tutorial tags : apache maven , maven repository , maven central

CheckNumeric.java

sample code

package wikitechy.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>

4- Create MavenParent Project

  • The purpose of this project to configure Maven & Tycho to build two projects ( SimpleOSGi & SimpleMaven).
  • Create a common Java Project
 learn maven tutorial - create mavenparent project step1 - maven example

learn maven tutorial - create mavenparent project step1 - maven example

 learn maven tutorial - create mavenparent project step2 - maven example

learn maven tutorial - create mavenparent project step2 - maven example

5- Configure Maven & Tycho

5.1- Configuring the OSGi project (SimpleOSGi)

  • First we convert SimpleOSGi into Maven Project. SimpleOSGi will be a Maven plugin and OSGi Project
 learn maven tutorial - configure maven tycho step1- maven example

learn maven tutorial - configure maven tycho step1- maven example

 learn maven tutorial - configure maven tycho step2 -  maven example

learn maven tutorial - configure maven tycho step2 - maven example

  • Project has been converted into a Maven project, and have error message, you do not want to worry about that.
 learn maven tutorial - configure maven tycho step3 -  maven example

learn maven tutorial - configure maven tycho step3 - maven example

 learn maven tutorial - configure maven tycho step4 -  maven example

learn maven tutorial - configure maven tycho step4 - maven example

  • Open the pom.xml file and reconfigure as follows:
maven tutorial tags : apache maven , maven repository , maven central

SimpleOSGi/pom.xml

sample code

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.wikitechy.com/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>wikitechy</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>

5.2- Configuring Maven Project (SimpleMaven)

  • Open pom.xml file on Project SimpleMaven and add the following code:
<parent>  
    <groupId>wikitechy</groupId>
    <artifactId>MavenParent</artifactId>
    <version>1.0.0</version>
    <relativePath>../MavenParent/pom.xml</relativePath>
</parent>  

SimpleMaven/pom.xml

maven tutorial tags : apache maven , maven repository , maven central

sample code

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.wikitechy.com/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>wikitechy</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>wikitechy</groupId>
       <artifactId>MavenParent</artifactId>
       <version>1.0.0</version>
       <relativePath>../MavenParent/pom.xml</relativePath>
   </parent>
    
</project>

5.3- Configuring Maven Parent

 learn maven tutorial - configure maven parent step1 -  maven example

learn maven tutorial - configure maven parent step1 - maven example

 learn maven tutorial - configure maven parent step2 -  maven example

learn maven tutorial - configure maven parent step2 - maven example

MavenParent/pom.xml

maven tutorial tags : apache maven , maven repository , maven central

sample code

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.wikitechy.com/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>wikitechy</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>

5.4- Building

  • Right-click MavenParent select Run As / Maven Install.
 learn maven tutorial - maven building step1-  maven example

learn maven tutorial - maven building step1- maven example

 learn maven tutorial - maven building step2 -  maven example

learn maven tutorial - maven building step2 - maven example


Wikitechy provides an indepth knowledge on the below maven tutorial items such as maven download , maven install , maven goals , maven build , maven commands , maven plugin , maven search , maven eclipse , maven deploy , eclipse maven , maven junit , maven java , hibernate maven , maven project , java maven , maven version , maven proxy , maven 2 , maven pom , maven eclipse plugin , maven java version , maven properties , maven install windows , how to create maven project in eclipse , eclipse maven plugin , maven dependencies , what is maven in java , maven apache , maven project structure , how to install maven in eclipse

Related Searches to Building Java OSGi Project with Maven and Tycho

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add wikitechy.com to your ad blocking whitelist or disable your adblocking software.

×