Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)

2024-01-15 08:32

本文主要是介绍Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4.1.开发环境搭建

4.2开发工具

Maven 3

Felix 4

Eclipse

4.3环境配置

4.3.1 maven环境配置

(1)下载maven,解压到D盘

(2)在系统变量中添加M2_HOME D:\apache-maven-3.0.4;在系统变量的path中添加

%M2_HOME%\bin注意用英文分号隔开

(3)在cmd下输入mvn -version测试是否安装成功

4.3.2 Eclipse集成maven

) 启动eclipse,如图所示选择install new software…

(2) 点击 Add 按钮 按以下步骤安装:

 

1 . 安装 Subclipse

要安装Subclipse,使用下面的Eclipse插件更新站点。

Subclipse 1.2: http://subclipse.tigris.org/update_1.2.x

想要了解其它版本的Subclipse,以及关于Subclipse插件更多的信息,请访问Subclipse项目的web站点:http://subclipse.tigris.org/ 。

2. 安装 Mylyn

要安装集成了JIRA支持的Mylyn,添加Mylyn Extras的Eclipse更新URL,如果你的组织使用Atlassian's JIRA 来跟踪问题,你会需要这么做。使用下面的更新站点来安装Mylyn:

Mylyn (Eclipse 3.3): http://download.eclipse.org/tools/mylyn/update/e3.3

Mylyn (Eclipse 3.4): http://download.eclipse.org/tools/mylyn/update/e3.4

Mylyn Extras (JIRA 支持): http://download.eclipse.org/tools/mylyn/update/extras

想了解关于Mylyn项目的更多信息,访问Mylyn项目的web站点:http://www.eclipse.org/mylyn/ 。

3. 安装 AspectJ Tools Platform (AJDT)

如果你正在安装m2eclipse的0.9.4版本,你可能同时也想要安装Web Tools Platform (WTP) 和 AspectJ Development Tools (AJDT)。使用如下的eclipse更新URL以安装AJDT。

AJDT (Eclipse 3.3): http://download.eclipse.org/tools/ajdt/33/update

AJDT (Eclipse 3.4): http://download.eclipse.org/tools/ajdt/34/dev/update

想要了解更多的关于AJDT项目的信息,请访问AJDT项目的web站点http://www.eclipse.org/ajdt/ 。

4. 安装 Web Tools Platform (WTP)

要安装Web Tools Platform (WTP)。使用如下的eclipse更新URL,或者直接在Discovery站点中寻找Web Tool Project,该站点应该已经在你的Eclipse远程更新站点列表中了。

WTP: http://download.eclipse.org/webtools/updates/

关于更多的Web Tools Platform的信息,请访问Web Tools Platform项目的web站点http://www.eclipse.org/webtools/ 。

5 安装 m2eclipse

 

一旦你已经安装好这些先决条件,你从如下的Eclipse更新URL安装m2eclipse插件和m2eclipse-extras:

m2eclipse 插件: http://m2eclipse.sonatype.org/update/

m2eclipse-extras : http://m2eclipse.sonatype.org/sites/m2e-extras 

最后 maven要用jdk,作用maven时要指定jdk;

      在重启eclipse之前,更改eclipse.ini,在–vmargs前面(一定要在其前面)加上:

              -vm
           D:\Java\jdk1.6.0_07\bin\javaw.exe //改为你自己的jdk目录

    否则会在启动eclipse时报错

至此maven在eclipse按的安装就算完成了。

最好不要使用m2ecplise使用内嵌的Maven:

     Windows- Preferences-Maven-Installation, 单击Add...按钮,然后选择Maven安装目录M2_HOME,添加完毕后选择这个外部的Maven。

4.3.3 配置局域网内部maven库

4.4 在Eclipse+Maven环境下创建bundle应用:

4.4.1 新建Maven Project

(1)在File菜单下选择New>Project…, 选择Maven Project 点击next

(2)选择Create a simple project ,点击next

(3)在设置页面输入工程信息,如图,完成后点击finish。

(4) 生成maven工程,如图所示,其中,src/main/java目录放置java源文件,src/main/resources放置其他资源文件(如css,js,html,jsp文件),target目录放置运行mvn install命令后生成的文件。

4.4.2 Project Object Model(pom.xml)基本配置说明

project pom.xml 文件中的顶层元素;  
modelVersion
指明 POM 使用的对象模型的版本。这个值很少改动。
groupId
指明创建项目的组织或者小组的唯一标识。 GroupId 是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如, org.apache.maven.plugins 是所有 Maven 插件项目指定的 groupId 
artifactId
指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个 JAR 文件。第二,象源代码包通常使用 artifactId 作为最后名称的一部分。典型的产品名称使用这个格式: <artifactId>- <version>. <extension>( 比如: myapp-1.0.jar) 
version
项目产品的版本号。 Maven 帮助你管理版本,可以经常看到 SNAPSHOT 这个版本,表明项目处于开发阶段。  
name
项目的显示名称,通常用于 maven 产生的文档中。  
url
指定项目站点,通常用于 maven 产生的文档中。  
description
描述此项目,通常用于 maven 产生的文档中。

dependencies

plugins

Export-Package

repository

 

4.4.2 一些重要的maven plugin

maven-bundle-plugin:

iPOJO Plugin:

junit4osgi Plugin:

SCR Plugin:

4.5 bundle版本说明

 

4.5.1 版本格式

Major.minor.patch level

4.5.2 版本约束

(1) 第一次发布 1.0.0

(2) 修复bug,但不涉及修改接口 ,由1.0.0->1.0.1

(3) 在接口中增加了函数,修改minor,由1.0.1->1.1.1,此种变更不影响之前的依赖关系,因此在之前依赖1.0.1版本的bundle不需要修改。

(4) 若变更无法向上兼容,如删除函数,修改函数返回类型等,修改major号,由1.1.1-2.0.0

4.6 bundle部署及更新

4.6.1 部署

1,将bundle 打包

命令行:mvn package

Ecplise: run as->Maven package

2,将bundle install到本地依赖库(便于自己测试)

命令行:mvn install

Eclipse: run as->Maven install

3,将bundle 发布到远程bundle库中(本地测试成功,发布到服务器上进行测试)

命令行:mvn deploy

Eclipse:目前无。

4.6.2 更新

(1) 刷新OBR库:repos refresh file:///path/repository.xml

(2) 通过update id命令更新对应的组件

4.7服务注册与依赖管理

4.7.1 OSGI原生依赖管理机制

  1. 被依赖的 bundle 通过 BundleContext.registerService() 方法注册服务到系统中
  2. 使用依赖的 bundlestart 时通过 BundleContextgetServiceReferences()/

    getService() 来查找依赖的 service

  3. 使用依赖 bundle 通过 BundleContext.addServiceListener() 来分别注册

    ServiceListener

  4. 在被依赖的 bundle/service 状态发生变化时 , 使用依赖 bundle 通过 ServiceListenerserviceChanged() 得到通知并作出调整

缺点:

  1. 编码量较大
  2. Activator 复杂度较高:对于一些业务逻辑简单的 service ,如果依赖的 service 比较多,那么 Activator 的逻辑和代码实现远比 service 本身的逻辑和实现要复杂。
  3. 对测试不利。

4.7.2 iPOJO

优点:

  1. 组件被作为POJO(Plain Old Java Objects简单Java对象)开发,不需要其他任何东西
  2. 组件模块是可扩展的,因此可以自由的适应需要
  3. 标准组件模型管理service 供应和service 依赖,所以可以要求其他任何OSGI服务来创建组合服务,
  4. iPOJO管理组件实例的生命周期和环境动态
  5. iPOJO提供一个强力的组合系统来创建高度动态的应用
  6. iPOJO支持注解,xml或者基于Java的API来定义组件

meta.xml文件说明:

component:

provides:

requires:

instance:

 

  1. 组件管理容器

通过iPOJO管理组件实例的生命周期和环境动态

对服务注册

服务是组件服务接口函数的具体实现

  1. 开发和注册服务

申明函数接口组件(API):一般只包括JAVA接口定义和常量,打包成jar并放在OBR库中

组件功能实现及服务发布(Impl):包含实现函数,包含iPOJO配置文件meta.xml,通过component 发布服务。

 

  1. 调用服务

 

4.8在组件中加入日志服务

4.8.1部署本地日志服务

Deploy –s "Apache Felix Log Service"

使用log指令监控bundle生命周期

4.8.2日志监控及写入

通过LogListener接口来读取log信息

public class LogWriter implements LogListener





{


    // Invoked by the log service implementation for each log entry




public void logged(LogEntry entry) 




    {


System.out.println(entry.getMessage());




    }


}


 

 

 

  1. debug

Debug的方法有如下三种:

  1. 用felix 的ecplise的插件pax runner。

     

  2. 以debug模式运行一个felix监听端口,再远程调试bundle。

     

  3. 在bundle中下断点,以debug模式运行felix。
    1. 在bundle中下相应的断点
    2. 部署bundle到相应的felix bundle目录下

    3,右键felix项目 选择debug as-> java application 如图所示

    当运行到断点处的时候,eclpise会自动进入如下debug界面

5.0单元测试

5.1 团队协作

为了便于协同开发,我们将在本地搭建一个maven私服,felix服务器,svn。

Maven私服搭建

一、安装服务器

      1 、下载

       我们可以在 nexus官网 上找到它的相关介绍,下载地址是: http://nexus.sonatype.org/downloads/ ,在这里可以找到最新的版本,如果需要以前的版本,在官网上应该也可以找到下载地址。我下载的是: nexus-oss-webapp-1.8.0-bundle.tar.gz 。关于 Nexus 的详细使用方法可以参照: Repository Management with Nexus.

      2 、安装

      解压下载的文件:

       # tar xzvf nexus-oss-webapp-1.8.0-bundle.tar.gz

      解压后会在同级目录中,出现两个文件夹: nexus-oss-webapp-1.8.0sonatype-work ,前者包含了 nexus 的运行环境和应用程序,后者包含了你自己的配置和数据。

      3 、启动 nexus

       在上面的提到, nexus 的运行环境在 nexus-oss-webapp-1.8.0 目录,下面就进入这个目录启动:

      #  cd nexus-oss-webapp-1.8.0/bin/jsw/linux-x86-64/

       在这个目录下包含了一个文件夹和三个文件: libnexusplatformwrapper ,其中 nexus 就是启动命令。

       # ./nexus

       执行上面的命令,可以得到 nexus 命令的用法提示: start 命令启动, stop 命令停止。下面启动 nexus

       # ./nexus start

       Starting Nexus OSS...

       Started Nexus OSS

      从控制台输出可以看到 Nexus 已经启动成功,我们可以通过 log 文件查看更详细的信息:

      # cd ~/nexus-oss-webapp-1.8.0/log

      # tail -f wrapper.log

      log 中可以看到 nexus 默认监听的端口是 8081 。那么我们就可以在浏览器中访问 :http://host:8081/nexus

      

 

        二、配置 Nexus

        由于在新搭建的 nexus 环境中只是一个空的仓库,所以第一步就是要和远程的 Maven 中心仓库进行同步。

        

 

        

       如果在 Reindex 之后,并没有同步到远程的仓库,可以检查每个仓库的设置。下面是 Maven Central 的设置:

 

       

 

        三、在项目中使用私服

 

       在完成了上面的配置后,就可以将项目中默认的 Repository 切换为本地的私服了,只需要在 pom.xml 中增加 repositories 就可以了:

 

[xhtml]  view plain copy print ?

  1. <project   xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   
  3.   <modelVersion> 4.0.0</modelVersion>   
  4.   <groupId> org.maven.demo</groupId>   
  5.   <artifactId> MavenDemo</artifactId>   
  6.   <version> 0.0.1-SNAPSHOT</version>   
  7.   <packaging> jar</packaging>   
  8.   <name> MavenDemo</name>   
  9.   <url> http://maven.apache.org</url>   
  10.     <repositories>   
  11.         <repository>   
  12.             <snapshots>   
  13.                 <enabled> true</enabled>   
  14.             </snapshots>   
  15.             <id> public</id>   
  16.             <name> Public Repositories</name>   
  17.             <url> http://172.28.189.138:8081/nexus/content/groups/public/</url>   
  18.         </repository>   
  19.     </repositories>   
  20.     <pluginRepositories>   
  21.         <pluginRepository>   
  22.             <id> public</id>   
  23.             <name> Public Repositories</name>   
  24.             <url> http://172.28.189.138:8081/nexus/content/groups/public/</url>   
  25.         </pluginRepository>   
  26.     </pluginRepositories>   
  27.     <dependencies>   
  28.         <dependency>   
  29.             <groupId> junit</groupId>   
  30.             <artifactId> junit</artifactId>   
  31.             <version> 4.8.1</version>   
  32.             <type> jar</type>   
  33.             <scope> compile</scope>   
  34.         </dependency>   
  35.     </dependencies>  

这篇关于Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608271

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术