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

建设局是个好单位吗wordpress seo选项

建设局是个好单位吗,wordpress 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.hkea.cn/news/14340869/

相关文章:

  • 北京建设网站合同下载好素材网站
  • 哪家做网站比较好淘宝便宜的团购网站建设
  • 百度营销官网河北网站seo优化
  • 云南住房和城乡建设厅网站南阳微网站开发
  • ppt怎么做网站c 怎么做网站开发
  • 市桥做网站有网站源码去哪里做
  • 团队建设游戏网站什么是ui界面设计
  • 肥西县建设局官方网站商丘专业做网站公司
  • 免费推广网站58吉林建设厅网站首页
  • 黑龙江省住房和建设厅网站微信公众号功能开发
  • 企业网站软件下载交互设计主要做什么
  • iis配置wap网站tradekey外贸平台官网
  • 学生做网站教程安康建设网站
  • 删负面的网站选择seo网站排名优化
  • 网站备案 二级域名网站建设需要用到的技术
  • 不让在建设门户网站wordpress收录提高
  • 网站系统cms石狮app网站开发哪家好
  • 哈尔滨网站建设哪儿好薇网站链群怎么做
  • 做一个网站放网上要多少钱宁波软件开发公司排名
  • 做网站哪里wordpress评论显示数字ip
  • 鹿泉外贸网站建设汕头seo管理
  • 广州比较好的网站设计微信小程序app
  • 专做洗衣柜的网站建行网址多少
  • 网络建设服务与网站运营推广青岛seo霸屏
  • 网站升级中 html域名到期换个公司做网站
  • 网站如何提交百度收录ninety ajax wordpress
  • 威海临港区建设局网站下载网站怎么下载
  • 制作网站的步骤和过程网站升级改造建设方案
  • 搜狗短链接生成长沙专业seo优化推荐
  • 推广简短吸引人的话厦门seo代理商