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>
分享到:
相关推荐
本技术文档涵盖了三个关键领域:设计模式、Maven项目管理和OSGI模块系统,这些都是Java开发中的核心概念。 首先,让我们深入探讨设计模式。设计模式是软件工程中的一种最佳实践,代表了在特定上下文中解决问题的...
【标题】:“Maven管理ServiceMix工程” 在Java企业级开发中,Apache ServiceMix是一个流行的开源企业服务总线(ESB)和应用服务器,它基于OSGi容器,并且集成了许多开源项目,如Apache Camel、CXF等。Maven作为...
在本文中,我们将深入探讨如何基于VirgoServer进行Spring Osgi Web开发,这是一个涉及OSGi容器、Spring框架和Web应用程序的集成技术。首先,我们需要确保拥有正确的开发环境和工具,包括Spring Tool Suite (STS),...
2. **创建bundle**:使用OSGi兼容的构建工具(如BndTools或Maven Bundle Plugin)将“myself”工程打包为bundle。在MANIFEST.MF文件中,定义Bundle-SymbolicName和Bundle-Version属性,以标识bundle的唯一性和版本。...
创建第一个OSGi bundle是一个简单的练习,旨在熟悉基本的OSGi开发流程。 **2.8 Bundle生命周期** 了解bundle的生命周期对于正确地管理bundle的状态至关重要。 **2.9 增量开发** 在OSGi环境中,增量开发意味着...
此示例项目展示了典型 AEM 项目的 maven 设置可能是什么样子。 主要关注的是 maven 插件的使用以及继承可选的构建配置文件installBundle和installPackage 。 pom 文件中有很多注释进一步解释了所采用的方法。 项目...
创建Java工程是Maven的基本功能之一。使用mvn archetype:generate命令可以启动一个基于不同模板的项目工程的创建。常见的工程类型包括普通的Java应用、Android应用、OSGi bundle、Clojure项目、Web应用打包(WAR)等...
基于VirgoServer进行Spring Osgi Web开发需要配置VirgoServer开发环境,使用Maven和Eclipse Virgo Tools,创建Bundle Project,并配置Spring配置文件。同时,需要实现Servlet类,用于处理请求,并配置classpath和...
2. **模板支持**:它提供了预定义的模板,用于快速创建不同类型的OSGi工程,如Bundle、Fragment、Composite Bundle等,极大地提高了开发效率。 3. **依赖管理**:插件会智能地处理OSGi bundle间的依赖关系,确保每...
### Eclipse Maven Spring DM(译文)- ...综上所述,本指南全面覆盖了从开发环境搭建到项目创建、配置、测试直至最终部署的整个过程,旨在帮助开发者深入了解如何使用Eclipse、Maven和Spring DM进行OSGi平台项目开发。
- **创建Bundle Project**:在STS中创建一个新的OSGi Bundle项目。 - **定义接口与实现类**: - **接口定义**:定义一个接口以供其他模块调用。 - **实现类编写**:实现上述接口。 - **对外发布接口**: - ...
在本示例中,我们将深入探讨如何将 Xtext 与多模块 Maven 项目结构以及 Tycho 结合使用,以便于构建和管理复杂的 DSL 工程。 首先,让我们了解 Xtext 的基本工作流程。Xtext 提供了 `..xtext` 文件,这是一种 XML ...
`MANIFEST.MF`文件是OSGi规范中的一个清单文件,它定义了插件的运行时属性,如插件名称、版本、唯一标识符(Bundle-SymbolicName)、激活策略以及依赖的其他插件等。例如,`Bundle-Activator`字段指定了插件启动时...
要开始编写插件,首先需要创建一个Maven项目,并在`pom.xml`中设置`parent`为`onboard.parent`,并指定插件的`artifactId`。这样可以确保项目继承Onboard的父工程,获取必要的基础配置和依赖。 ```xml <groupId>...
1. 插件开发:Eclipse基于OSGi框架,开发者可以创建自定义插件扩展其功能。 2. 常用插件:如Mylyn(任务管理)、PMD(代码质量检查)、FindBugs(静态代码分析)等。 3. Maven插件:M2Eclipse插件支持Maven项目集成...
在Eclipse中创建新项目时,我们需要选择合适的项目类型,如Java工程、Web工程或Android应用工程。每个项目类型都有其特定的目录结构和构建规则。例如,Java工程通常包含src目录用于存放源代码,bin目录存放编译后的...
- Java工程创建:了解如何创建Java类、接口、包,以及导入导出。 - 构建路径:管理项目的类路径、源路径和库。 - JUnit测试:利用Eclipse内置的JUnit框架进行单元测试。 5. **插件系统**: - 插件开发:了解...
你可以创建各种类型的项目,如Java工程、Web工程或Android应用。每个项目都有自己的构建路径、源代码目录和输出目录。Eclipse的“构建路径”功能允许用户自定义类库引用,这对于引入外部JAR文件或依赖于其他项目至关...
- 项目:在工作空间中,可以创建各种类型的项目,如Java工程、Web工程等,每个项目包含源代码、资源文件、配置文件等。 3. **代码编辑器**: - 自动完成:Eclipse的代码编辑器提供了强大的自动补全功能,可帮助...