`

Maven创建osgi工程

 
阅读更多

Pax-Construct 是用来创建osgi工程的maven的插件,以后创建osgi架构的工程再也不用import一大堆plugin工程了。
   http://www.ops4j.org/projects/pax/construct/ 是Pax插件官网的入门教程,简单的说分为以下几步:
   1)http://repo1.maven.org/maven2/org/ops4j/pax/construct/scripts/1.4/scripts-1.4.zip 是pax插件的下载地址,下载了该插件后设置环境变量就可以使用了。
   2)pax-create-project -g examples -a test 该命令是创建一个OSGI的工程, -g 代表groupId为 examples ; -a 代表artifactId 为test
   3)进入到test 目录创建一个bundle。命令如下:cd test
     pax-create-bundle -p org.example.pkg -n test.bundle  其中-p 代表包名 -n代表bundle的名称
   4)mvn pax:eclipse -DdownloadSources 编译代码,导入到eclipse中
   5)mvn clean install pax:provision 部署工程到felix 。在这一步有可能报如下的错误:
     An API incompatibility was encountered while executing org.ops4j:maven-pax-plugin:1.4:compile: java.lang.NoSuchMethodError: org.apache.maven.project.MavenProject.addPlugin(Lorg/apache/maven/model/Plugin;)V   该错误的原因是Pax-Construct 试图改变maven的编译接口以更好的适应osgi。解决办法为修改poms/pom.xml文件。
原文件:
<pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.ops4j</groupId>
          <artifactId>maven-pax-plugin</artifactId>
          <!--
           | enable improved OSGi compilation support for the bundle life-cycle.
           | to switch back to the standard bundle life-cycle, move this setting
           | down to the maven-bundle-plugin section
          -->
          <extensions>true</extensions>                         <!-- 修改这里-->
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>1.4.3</version>
        </plugin>
      </plugins>
    </pluginManagement>
修改后文件:
<pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.ops4j</groupId>
          <artifactId>maven-pax-plugin</artifactId>
          <!--
           | enable improved OSGi compilation support for the bundle life-cycle.
           | to switch back to the standard bundle life-cycle, move this setting
           | down to the maven-bundle-plugin section
          -->
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>1.4.3</version>
          <extensions>true</extensions>                         <!-- 移动到这里 -->
        </plugin>
      </plugins>
    </pluginManagement>

分享到:
评论

相关推荐

    java技术文档.设计模式,maven,osgi

    本技术文档涵盖了三个关键领域:设计模式、Maven项目管理和OSGI模块系统,这些都是Java开发中的核心概念。 首先,让我们深入探讨设计模式。设计模式是软件工程中的一种最佳实践,代表了在特定上下文中解决问题的...

    Maven管理ServiceMix工程

    【标题】:“Maven管理ServiceMix工程” 在Java企业级开发中,Apache ServiceMix是一个流行的开源企业服务总线(ESB)和应用服务器,它基于OSGi容器,并且集成了许多开源项目,如Apache Camel、CXF等。Maven作为...

    osgi解决不同版本jar包冲突的demo

    2. **创建bundle**:使用OSGi兼容的构建工具(如BndTools或Maven Bundle Plugin)将“myself”工程打包为bundle。在MANIFEST.MF文件中,定义Bundle-SymbolicName和Bundle-Version属性,以标识bundle的唯一性和版本。...

    基于VirgoServer进行Spring Osgi Web开发

    在本文中,我们将深入探讨如何基于VirgoServer进行Spring Osgi Web开发,这是一个涉及OSGi容器、Spring框架和Web应用程序的集成技术。首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),...

    OSGi in Practice 完整版

    创建第一个OSGi bundle是一个简单的练习,旨在熟悉基本的OSGi开发流程。 **2.8 Bundle生命周期** 了解bundle的生命周期对于正确地管理bundle的状态至关重要。 **2.9 增量开发** 在OSGi环境中,增量开发意味着...

    aem-sample-project:展示简单 maven 设置的示例 AEM 项目

    此示例项目展示了典型 AEM 项目的 maven 设置可能是什么样子。 主要关注的是 maven 插件的使用以及继承可选的构建配置文件installBundle和installPackage 。 pom 文件中有很多注释进一步解释了所采用的方法。 项目...

    构建工具:maven简介

    创建Java工程是Maven的基本功能之一。使用mvn archetype:generate命令可以启动一个基于不同模板的项目工程的创建。常见的工程类型包括普通的Java应用、Android应用、OSGi bundle、Clojure项目、Web应用打包(WAR)等...

    学位论文-—基于virgoserver进行springosgiweb开发.doc

    基于VirgoServer进行Spring Osgi Web开发需要配置VirgoServer开发环境,使用Maven和Eclipse Virgo Tools,创建Bundle Project,并配置Spring配置文件。同时,需要实现Servlet类,用于处理请求,并配置classpath和...

    pax-construct

    2. **模板支持**:它提供了预定义的模板,用于快速创建不同类型的OSGi工程,如Bundle、Fragment、Composite Bundle等,极大地提高了开发效率。 3. **依赖管理**:插件会智能地处理OSGi bundle间的依赖关系,确保每...

    EclipseMavenSpringDM(译文)- 中文版

    ### Eclipse Maven Spring DM(译文)- ...综上所述,本指南全面覆盖了从开发环境搭建到项目创建、配置、测试直至最终部署的整个过程,旨在帮助开发者深入了解如何使用Eclipse、Maven和Spring DM进行OSGi平台项目开发。

    基于VirgoServer进行SpringOsgiWeb开发.doc

    - **创建Bundle Project**:在STS中创建一个新的OSGi Bundle项目。 - **定义接口与实现类**: - **接口定义**:定义一个接口以供其他模块调用。 - **实现类编写**:实现上述接口。 - **对外发布接口**: - ...

    xsample:Xtext 与多模块 Maven Tycho 示例

    在本示例中,我们将深入探讨如何将 Xtext 与多模块 Maven 项目结构以及 Tycho 结合使用,以便于构建和管理复杂的 DSL 工程。 首先,让我们了解 Xtext 的基本工作流程。Xtext 提供了 `..xtext` 文件,这是一种 XML ...

    对插件清单的一些分析

    `MANIFEST.MF`文件是OSGi规范中的一个清单文件,它定义了插件的运行时属性,如插件名称、版本、唯一标识符(Bundle-SymbolicName)、激活策略以及依赖的其他插件等。例如,`Bundle-Activator`字段指定了插件启动时...

    Onboard插件编程指南1

    要开始编写插件,首先需要创建一个Maven项目,并在`pom.xml`中设置`parent`为`onboard.parent`,并指定插件的`artifactId`。这样可以确保项目继承Onboard的父工程,获取必要的基础配置和依赖。 ```xml &lt;groupId&gt;...

    神兵利器——Eclipse开发技术详解(电子版)

    1. 插件开发:Eclipse基于OSGi框架,开发者可以创建自定义插件扩展其功能。 2. 常用插件:如Mylyn(任务管理)、PMD(代码质量检查)、FindBugs(静态代码分析)等。 3. Maven插件:M2Eclipse插件支持Maven项目集成...

    eclipse none 3 part2

    在Eclipse中创建新项目时,我们需要选择合适的项目类型,如Java工程、Web工程或Android应用工程。每个项目类型都有其特定的目录结构和构建规则。例如,Java工程通常包含src目录用于存放源代码,bin目录存放编译后的...

    Eclipse_教程_高清PDF

    - Java工程创建:了解如何创建Java类、接口、包,以及导入导出。 - 构建路径:管理项目的类路径、源路径和库。 - JUnit测试:利用Eclipse内置的JUnit框架进行单元测试。 5. **插件系统**: - 插件开发:了解...

    Elipse开发技术源文件

    你可以创建各种类型的项目,如Java工程、Web工程或Android应用。每个项目都有自己的构建路径、源代码目录和输出目录。Eclipse的“构建路径”功能允许用户自定义类库引用,这对于引入外部JAR文件或依赖于其他项目至关...

    Eclipse集成工具

    - 项目:在工作空间中,可以创建各种类型的项目,如Java工程、Web工程等,每个项目包含源代码、资源文件、配置文件等。 3. **代码编辑器**: - 自动完成:Eclipse的代码编辑器提供了强大的自动补全功能,可帮助...

Global site tag (gtag.js) - Google Analytics