当前位置: 首页 > news >正文

优质手机网站建设哪家好seo网站管理

优质手机网站建设哪家好,seo网站管理,哈尔滨做网站的公司,韶关市开发区建设局网站基于Maven构建OSGI应用。 使用Maven来构建项目#xff0c;包括项目的创建、子模块buldle的创建等。使用OSGI来实现动态模块化管理#xff0c;实现模块的热插拔效果#xff08;即插即用#xff09;。 创建一个Maven项目#xff1a;helloworld#xff0c;并在该项目下创建…基于Maven构建OSGI应用。 使用Maven来构建项目包括项目的创建、子模块buldle的创建等。使用OSGI来实现动态模块化管理实现模块的热插拔效果即插即用。 创建一个Maven项目helloworld并在该项目下创建两个Maven 子模块helloworld-client、helloworld-server。 创建 helloworld maven项目、填写参数及Advanced Settings 创建 helloworld-server maven子模块 同样的方式再创建 helloworl-client maven 子模块。 接下来就是 hellworld-server、helloworld-client 编码以及OSGI及编译打包配置。 OSGI及编译打包配置直接通过修改3个pom文件1个主pom、2个子模块的pom来配置最终配置结果如下 1代码结构 client-Activator.java package com.xxx.osgi.helloworld.client;import com.xxx.osgi.helloworld.server.HelloWorldImpl; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference;import java.util.Objects;/*** author frank* date 2023/12/8*/ public class Activator implements BundleActivator {public void start(BundleContext bundleContext) throws Exception {System.out.println(helloworld-client: start);System.out.println(helloworld-client: call server getHelloMsg());ServiceReferenceHelloWorldImpl reference bundleContext.getServiceReference(HelloWorldImpl.class);if (Objects.nonNull(reference)) {HelloWorldImpl service bundleContext.getService(reference);if (Objects.nonNull(service)) {String msg service.getHelloMsg(Frank);System.out.println(SUCCESS: return msg is:\n msg);} else {System.out.println(ERROR: service not found!);}bundleContext.ungetService(reference);} else {System.out.println(ERROR: service reference not found!);}}public void stop(BundleContext bundleContext) throws Exception {System.out.println(helloworld-client: stop);} } server-Activator.java package com.xxx.osgi.helloworld.server;import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference;import java.util.Dictionary; import java.util.Hashtable; import java.util.Objects;/*** author frank* date 2023/12/9*/ public class Activator implements BundleActivator {public void start(BundleContext bundleContext) throws Exception {System.out.println(helloworld-server: start);HelloWorldImpl server new HelloWorldImpl();DictionaryString, Object properties new HashtableString, Object();bundleContext.registerService(HelloWorldImpl.class, server, properties);System.out.println(helloworld-server: 服务已发布(注册)!);}public void stop(BundleContext bundleContext) throws Exception {System.out.println(helloworld-server: stop);} } server-IHelloWorld.java package com.xxx.osgi.helloworld.server;/*** author frank* date 2023/12/9*/ public interface IHelloWorld {String getHelloMsg(String name); } server-HelloWorldImpl.java package com.xxx.osgi.helloworld.server;/*** author frank* date 2023/12/9*/ public class HelloWorldImpl implements IHelloWorld {public String getMethodName() {return [ Thread.currentThread().getStackTrace()[2].getMethodName() : Thread.currentThread().getStackTrace()[2].getLineNumber() ] ;}public String getHelloMsg(String name) {return getMethodName() HelloWorld name;} } 2主pom project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.xxx.osgi/groupIdartifactIdhelloworld/artifactIdversion1.0.0-SNAPSHOT/versionmodulesmodulehelloworld-client/modulemodulehelloworld-server/module/modulespackagingpom/packagingnamehelloworld/nameurlhttp://maven.apache.org/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source8/maven.compiler.sourceparent.maven.bundle.plugin.version2.4.0/parent.maven.bundle.plugin.version/propertiesdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion3.8.1/versionscopetest/scope/dependencydependency!-- 该版本 maven 仓库找不到如果要用该版本可以在 Project Structure-Project Settings-Modules 中设置--!-- 设置 OSGI:General-Configure OSGI Core Library-Use Library 指定本地 jar 文件静态添加 osgi lib --!--groupIdorg.eclipse/groupIdartifactIdosgi/artifactIdversion3.18.600.v20231110-1900/versionscopeprovided/scope--!-- 该版本maven仓库可以找到可以用这个版本。在 pom 中指定 osgi lib 的 dependency 依赖 --groupIdorg.eclipse/groupIdartifactIdosgi/artifactIdversion3.10.0-v20140606-1445/versionscopeprovided/scope/dependency/dependencies /project 3hellworld-client 子模块pom project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdhelloworld/artifactIdgroupIdorg.xxx.osgi/groupIdversion1.0.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdhelloworld-client/artifactIdpackagingbundle/packagingnamehelloworld-client/nameurlhttp://maven.apache.org/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- osgi lib 使用主 pom 中定义的依赖子模块不再重复定义 osgi lib dependency --dependencygroupIdorg.xxx.osgi/groupIdartifactIdhelloworld-server/artifactIdversion${project.version}/version/dependency/dependenciesbuildpluginsplugin!-- osgi 打包配置使用 maven-bundle-plugin 插件进行 osgi 打包 bundle jar --!-- 使用maven-bundle-plugin打包方式时指定manifest文件不生效但可在 instructions 中配置 manifest 参数 --groupIdorg.apache.felix/groupIdartifactIdmaven-bundle-plugin/artifactIdversion${parent.maven.bundle.plugin.version}/versionextensionstrue/extensionsconfigurationinstructions!-- 如果要把依赖的 jar 也一起打包进去在 Import-Package 中指定、并设置 Embed-Dependency --!-- Embed-Dependency*;scopecompile|runtime/Embed-Dependency --Bundle-Name${project.name}/Bundle-NameBundle-SymbolicName$(replace;${project.artifactId};-;_)/Bundle-SymbolicNameBundle-Version${project.version}/Bundle-VersionBundle-Activatorcom.xxx.osgi.helloworld.client.Activator/Bundle-ActivatorImport-Packageorg.osgi.framework,com.xxx.osgi.helloworld.server;version${project.version}/Import-PackageExport-Packagecom.xxx.osgi.helloworld.client;version${project.version}/Export-Package/instructions/configuration/plugin/plugins/build /project4helloworld-server 子模块pom project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdhelloworld/artifactIdgroupIdorg.xxx.osgi/groupIdversion1.0.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdhelloworld-server/artifactIdpackagingbundle/packagingnamehelloworld-server/nameurlhttp://maven.apache.org/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- osgi lib 使用主 pom 中定义的依赖子模块不再重复定义 osgi lib dependency --/dependenciesbuildpluginsplugin!-- osgi 打包配置使用 maven-bundle-plugin 插件进行 osgi 打包 bundle jar --!-- 使用maven-bundle-plugin打包方式时指定manifest文件不生效但可在 instructions 中配置 manifest 参数 --groupIdorg.apache.felix/groupIdartifactIdmaven-bundle-plugin/artifactIdversion${parent.maven.bundle.plugin.version}/versionextensionstrue/extensionsconfigurationinstructions!-- 如果要把依赖的 jar 也一起打包进去在 Import-Package 中指定、并设置 Embed-Dependency --!-- Embed-Dependency*;scopecompile|runtime/Embed-Dependency --Bundle-Name${project.name}/Bundle-NameBundle-SymbolicName$(replace;${project.artifactId};-;_)/Bundle-SymbolicNameBundle-Version${project.version}/Bundle-VersionBundle-Activatorcom.xxx.osgi.helloworld.server.Activator/Bundle-ActivatorImport-Packageorg.osgi.framework/Import-PackageExport-Packagecom.xxx.osgi.helloworld.server;version${project.version}/Export-Package/instructions/configuration/plugin/plugins/build /project注意 iOSGI框架OSGI Library通过pom配置后自动manve刷新就可以自动在 Project Settings- Modules 中自动生成 OSGI 配置了包括OSGI Library也自设置了这里无需手动修改其他OSGI配置默认即可。根据pom自动生成的OSGI配置如下 Configure OSGI Core Library 点击打开显示如下 版本号就是pom中指定OSGI dependency 的版本。 iipom文件中配置打包插件使用maven-bundle-plugin 插件该插件是专门为OSGI打包提供的插件但是它不能导出 META-INF 中的内容到 Export-Package jar 包中。也就是说使用 maven-bundle-plugin 插件打包导出的 bundle jar 包中的 manifest 只能通过 pom.xml 文件中的 maven-bundle-plugin 打包参数项来配置不能直接指定使用自己项目中指定的 manifest 文件指定了也不生效。另外Project Settings - Modules 中的 Manifest Generation 配置也没有用。 另外maven-bundle-plugin 打包插件支持了一个标签 Embed-Dependency*;scopecompile|runtime/Embed-Dependency 有了这个标签可以直接把依赖的 jar 打入 bundle jar 包中去。 5编译打包 mvn clean package 执行命令就会生成目标jar文件 6添加 debug / run 配置可在idea中运行或调试 为client和server分别添加一个 debug/run 配置Bundle name配置中添加 4个 必须依赖的系统jar和各自子模块的jar 添加 debug/run 配置并运行后会自动生成  out 目录 7拷贝生成的 client server bundle(jar) 到OSGI环境执行 我本地Windows配置的OSGI运行环境位于d:\osgi\equinox\ d: cd d:\osgi\equinox\ d:\osgi\equinox ls  org.eclipse.osgi_3.18.600.v20231110-1900.jar plugins start.bat d:\osgi\equinox mkdir  my_bundles d:\osgi\equinox cp e:\ws2\qf\helloworld\helloworld-client\target\helloworld-client-1.0.0-SNAPSHOT.jar my_bundles\helloworld-client-1.0.0-SNAPSHOT.jar d:\osgi\equinox cp e:\ws2\qf\helloworld\helloworld-server\target\helloworld-server-1.0.0-SNAPSHOT.jar my_bundles\helloworld-server-1.0.0-SNAPSHOT.jar 8执行bundles install start bundlesserver需要先启动、再启动client 到此为止基于Maven构建OSGI应用示例完毕。 注意如果pom中指定maven.compiler.source8/maven.compiler.source时编译报错java: Compilation failed: internal java compiler error报错截图如下 检查下面几处相关设置是否正确 1检查File-Project Structure-Project Settings-Modules配置中的Dependencies-Module SDK 2检查Settings-Buile,Execution,Deployment-Compiler-Java Compiler设置Module的Per-module bytecode version-Target bytecode version 如果 Per-module bytecode version - Target bytecode version 不一致我最初默认是1.5、修改为一致8问题就解决了。
http://www.dnsts.com.cn/news/147257.html

相关文章:

  • 重庆网站建设小能手360建站和凡科哪个好
  • 建设银行网站注册用户名电脑网站与手机的区别
  • 每天一篇好文章网站外贸推广的几种方式以及效果排行
  • 技术支持 中山网站建设微信小程序怎么批量删除
  • 烟台建网站公司价格深入解析wordpress 下载
  • 甘肃温室大棚建设网站宁波江北建设局官方网站
  • 网站 营销方案网络整合营销的目的是什么
  • 贵阳花溪建设村镇银行官方网站为什么没有人做像58一样的网站
  • 最好的网站建设公司百度游戏中心app
  • 三只松鼠电商网站建设装宽带需要多少钱
  • 钦州建设局网站合肥制作手机网站
  • 做网站怎么设置背景园林专业设计学习网站
  • 用网站免费模板做网站要会什么湘潭市建设局网站
  • 视频网站logo怎么做php做的网站安全吗
  • seo 对网站有什么影响利津网站建设
  • 网站开发er图wordpress添加文章
  • 自己做网站运营免费做公益网站
  • android 网站模板wordpress 文件服务
  • 建设网站的网站是什么做网站 江门
  • 商丘市住房和城乡建设厅网站案例分析网站
  • 找企业案例的网站免费室内设计软件有哪些
  • 东莞市专注网站建设服务机构和易企秀类似的软件免费的
  • 网站不备案 能打开吗推软件
  • 静安西安网站建设做公益活动的网站
  • 百度 seo排名查询衡水搜索引擎优化
  • 企业融资是做什么的seo优化易下拉霸屏
  • 大朗网站建设培训wordpress菜单与页面关联
  • 怎样设网站徐州建设银行网站
  • 公司企业如何做网站央企门户网站哪家做的最好
  • 网站模板 代码免费三合一网站是什么