无法满足从 com.lmax.disruptor 3.2.0 到包 sun.misc 0.0.0 的依赖关系

2023-11-30

我正在开发一个 eclipse 插件,需要 com.lmax.disruptor。它导入 sun.misc。我的 p2 存储库中有这个,但是当我 Maven 构建我的插件时,我收到此错误“无法满足从 com.lmax.disruptor 3.2.0 到包 sun.misc 0.0.0 的依赖关系。”

我浏览过这些网站使用 Tycho 解决对包 sun.misc 的依赖他们说要创建一个插件片段,但是当我尝试创建它并将导出页面添加为 sun.misc 时,它会抛出一个错误,例如“插件中不存在包 sun.misc”。

如何解决这个问题请帮我解决这个问题。?我可以添加我的插件本身,而不是创建新的插件片段吗?

Thanks,


正如中提到的奥伯利斯的回答在您链接到的问题中,您需要建立一个系统包片段,它公开了,即出口,sun.misc包裹。我不知道还有什么其他办法。然而,这比预期的要容易。

您可以通过创建 OSGi 来做到这一点MANIFEST.MF导出 sun.misc,然后将其捆绑到片段中。这是通过 Maven 完成的,如下所示。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
      <groupId>your.group</groupId>
      <version>1.0.0</version>

    <artifactId>your.group.fragment.sun.misc</artifactId>
    <packaging>jar</packaging>
    <name>System Bundle Fragment exporting sun.misc</name>

    <description>This bundle extends the System Bundle export list with the sun.misc package such that OSGi bundles may refer to Sun's misc implementation without the OSGi framework itself to provide it in a non-portable way.</description>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <forceCreation>true</forceCreation>
                    <archive>
                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                        <manifestEntries>
                            <Export-Package>sun.misc</Export-Package>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.5.4</version>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <instructions>
                        <Bundle-Category>your.group</Bundle-Category>
                        <Fragment-Host>system.bundle; extension:=framework</Fragment-Host>
                    </instructions>
                </configuration>
            </plugin>

        </plugins>
    </build>

</project>

Run mvn clean install在此 POM 上。现在您需要使片段可供第谷使用,即您需要通过 p2 软件站点使其可用。

值得庆幸的是,有一个很棒的 Maven 插件可以帮助解决这个问题:reficio 的 p2-maven-plugin。您可以使用它基本上将任何 mavenized JAR 打包到 OSGi 包中,然后通过 p2 站点提供它。

如下设置相应的 POM。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>sun-misc-p2</groupId>
  <artifactId>site</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>

  <build>
            <plugins>
                <plugin>
                    <groupId>org.reficio</groupId>
                    <artifactId>p2-maven-plugin</artifactId>
                    <version>1.1.1</version>
                    <executions>
                        <execution>
                            <id>default-cli</id>
                            <configuration>
                                <artifacts>
                                    <!-- specify your depencies here -->
                                    <!-- groupId:artifactId:version -->
                                    <artifact><id>com.lmax:disruptor:3.3.2</id></artifact>
                                    <artifact><id>your.group:your.group.fragment.sun.misc:1.0.0</id></artifact>
                                </artifacts>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>8.1.5.v20120716</version>
                    <configuration>
                        <scanIntervalSeconds>10</scanIntervalSeconds>
                        <webAppSourceDirectory>${basedir}/target/repository/</webAppSourceDirectory>
                        <webApp>
                            <contextPath>/site</contextPath>
                        </webApp>
                   </configuration>
                </plugin>
            </plugins>
        </build>
        <pluginRepositories>
            <pluginRepository>
                <id>reficio</id>
                <url>http://repo.reficio.org/maven/</url>
            </pluginRepository>
        </pluginRepositories> 
</project>

Note我使用这个插件来提供 LMAX Disruptor(版本 3.3.2,撰写本文时的最新版本,值得庆幸的是可以从 Maven Central 获得)。

Run mvn p2:site在 POM 上。这将创建一个 p2 站点,其中包含sun.misc片段在{project-folder}/target/repository.

这个 p2 存储库 - 以及随之而来的sun.misc片段 - 现在可以添加到您的目标平台,因此可以在您的第谷构建中使用。

这应该可以解决这个问题,并且 - 如果“[您]可以通过任何可能的方式添加[您的]插件本身”来回答您的问题 - 这是唯一可能的方法(我知道)。

来源也可在https://github.com/newcodeontheblock/eclipse-rcp-with-async-logging。整个过程也有更详细的描述这是我的关于在 Eclipse RCP 中使用异步 Log4j 2 记录器的博客文章.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法满足从 com.lmax.disruptor 3.2.0 到包 sun.misc 0.0.0 的依赖关系 的相关文章

  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 在 JTable 中移动行

    我使用 MVC 模式 并且有一个如下所示的 JTable List
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • java迭代器内部是如何工作的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个员工列表 List
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe

随机推荐

  • Powershell网站自动化按钮点击登录

    所以我是 powershell 的新手 我为了好玩构建了一些脚本 但陷入了一个我似乎无法弄清楚的脚本 我正在尝试自动单击 继续 按钮 但不知道该怎么做 我已经尝试了我能想到的一切 有任何想法吗 username username passw
  • 如何在 Google Chrome JavaScript 控制台中打印调试消息?

    如何在 Google Chrome JavaScript 控制台中打印调试消息 请注意 JavaScript 控制台与 JavaScript 调试器不同 他们有不同的语法 AFAIK 所以printJavaScript 调试器中的命令在这里
  • 如何使用 file_get_contents() 加载远程文件?

    现在这让我有点挠头 我正在尝试从远程 URL 获取文件 我可以保存本地文件的内容 但不能保存远程文件的内容 这有效 file put contents file1 xml file get contents file2 xml 这不会 fi
  • 配置中的 req_extensions 和命令行上的 -extensions 有什么区别?

    示例 openssl root ca 配置来自OpenSSL 食谱定义如下 p40 req req extensions ca ext ca ext 稍后 p43 生成根 ca 密钥 然后生成根 ca 自签名证书 openssl req n
  • 错误:无法加载默认凭据(Firebase 函数到 firestore)

    我正在尝试为 Firebase Cloud Functions 编写一个 onCall 函数 该函数在 firestore 数据库上执行高级查询任务 即根据 AutoML 自然语言检查文本查询以获取类别等 但在尝试查询来自函数的数据库 Er
  • ActionScript MXML

    看起来我可以同时使用组件
  • 读取带有 chrome 扩展名的本地文件的内容

    我正在为 chrome 浏览器开发一个扩展 我使用 KangoExtensions 框架 该扩展是用 JavaScript 编写的 我想读取位于本地文件系统上的文件的内容 实现这个最简单的方法是什么 如果您已经知道文件系统中文件的路径 则只
  • 使用WebClient访问本地文件

    我开发了一个 C 应用程序 需要通过 HTTP FTP 以及有时还通过本地文件 file 访问许多不同的内容源 我希望有一个统一的方式通过不同的协议访问这些文件 因此我选择了 WebClient 来执行此操作 它适用于 MSDN 上记录的所
  • ListView 行中的 ViewFlipper

    我有一个 ListView 其中每行都有一个 XML 视图 每行都有一个 ViewFlipper 和一个 Button 其目的是按下按钮并翻转 ViewFlipper 上的视图 问题是我无法让按钮翻转正确的 ViewFlipper 我正在
  • NSNumber floatValue 不等于 NSNumber 值

    第一篇文章在这里 NSNumber 的 floatValue 方法有问题 不知何故 它返回一个不精确的数字 问题是这样的 我将一堆 NSNumber 存储在一个数组中 如下所示 NSArray a NSArray arrayWithObje
  • 如何将多个ViewPager放入一个ScrollView中?

    我正在尝试实现一个布局 其中包含 ViewPagers 列表 每个 ViewPager 都可以独立滑动 请参阅下图的链接 布局图片 我尝试使用 ScrollView 和一个带有 ViewPagers 的 LinearLayout 但我只显示
  • 根据与 dplyr::select 兼容的类/类型选择列

    实际问题 如何定义一个选择助手 根据其类 类型选择列并且也与dplyr的架构 尽职调查 我看过https cran r project org web packages dplyr vignettes introduction html以及
  • ASP.NET MVC 3 Ajax.BeginForm 和 Html.TextBoxFor 不反映在服务器上完成的更改

    我使用 ASP NET MVC3 中的 Ajax BeginForm 帮助程序提交一个表单 该表单将自身替换为服务器上表单集中的新值 但是 当我使用 Html TextBoxFor 之类的帮助程序时 我得到的是提交的值 而不是我插入到服务器
  • 遍历 4 个数字的组合

    我需要一个代码来运行 4 个数字的可能组合 例如 1234 将产生 1234 1243 1324 等的 24 种组合 但不做 1 12 123 ect 我希望它只有 4 个数字长度组合 只是改变顺序 一个很长的选择是 import rand
  • 张量流可以扫描并只保留最终结果吗?

    以下代码计算数组的总和tf scan 张量流会分配一个 6 元素数组来保存六个部分和吗 或者 tensorflow 足够聪明 只分配一个 1 元素数组来保存部分和 如何确定 import tensorflow as tf import nu
  • 未捕获的类型错误:firebase.auth 不是函数

    我尝试使用 firebase 电子邮件和密码 构建一个身份验证应用程序 但我对 firebase 方法有问题 当我致电 firebase auth 时 他们说 这不是一个函数 是因为我的项目和 firebase SDK 没有链接吗 您有什么
  • 多边形顶点 - 顺时针或逆时针

    我发现了这个链接http www mathopenref com coordpolygonarea2 html 它解释了如何计算多边形的面积 并有助于识别我们输入的多边形顶点是顺时针还是逆时针 如果面积值为 ve 则为顺时针方向 如果为 n
  • PHP 登录本机控制台 Firefox Developer

    与 Firebug 相比 我更喜欢 Firefox 开发者检查器 但是可以在原生 JS 控制台中显示 PHP 日志吗 谢谢 我刚刚安装了 Chrome Logger github website with Chrome PHP由于 Fire
  • 测试具有 CSRF 保护的 scala Play (2.2.1) 控制器

    我在测试使用 Play 的 CSRF 保护的控制器时遇到了一些问题 为了演示这一点 我创建了一个非常简单的 Play 应用程序 以最小程度地展示该问题 https github com adamnfish csrftest 完整的详细信息位
  • 无法满足从 com.lmax.disruptor 3.2.0 到包 sun.misc 0.0.0 的依赖关系

    我正在开发一个 eclipse 插件 需要 com lmax disruptor 它导入 sun misc 我的 p2 存储库中有这个 但是当我 Maven 构建我的插件时 我收到此错误 无法满足从 com lmax disruptor 3