【问题标题】:create jar with META-INF\services for Jboss module extension使用 META-INF\services 为 Jboss 模块扩展创建 jar
【发布时间】:2018-05-28 09:45:17
【问题描述】:

我希望实现一个接口,创建一个 jar 将其放入 JBoss 的部署文件夹中。
我只有一个 .java 文件。
但是我无法让任何 jar 工作。

我找不到任何关于如何构建 Jar 的文档。
我愿意使用任何工具,我尝试了一个 InterliJ Artefact(是整个项目)。
我尝试了 javac(对库使用 InteliJ 人工制品),然后是 jar,然后手动添加文件 /META-INF/services/org.[myinterface]

我找到了这两个帖子 Adding META-INF\services\javax.xml.parsers.SAXParserFactory to jarCreate META-INF/services file with Maven
但是这些都没有给我足够的精确度。

我认为这没有帮助,因为我知道我的 Jar 有问题,但这是部署中的错误:

org.my-class-to-implement:未找到提供程序 org.my-implementation

如果有人有一个可以生成正确 jar 的现有项目的链接,或者创建它的过程,那可以节省我的时间

可以帮助我的问题: 手动添加 /META-INF/services/ 文件可以吗?
如果有包名,我应该在某处提及吗?

感谢您的帮助,如果我在此期间找到正确的程序,我会在这里发布

【问题讨论】:

    标签: java maven jboss javac


    【解决方案1】:

    使用Maven 制作一个带有mvn package 的jar 或使用Eclipse 创建一个Runnable jar

    【讨论】:

    • 感谢您的回答,但是如何在 jar 中包含文件 /META-INF/services/ ?我创建了一个只有一个类的新 mvn 项目,然后对项目进行一些修改?还是在创建 jar 之后手动执行?
    • Maven中有配置可以添加你想要的东西到你的jar中,阅读文档
    • 将您的 pom.xml 添加到帖子
    • 当我希望构建 mvn 项目时,我遇到了同样的错误:no service provider org.my-class-to-implement 我一定是遗漏了一些东西,但我不知道是什么。再次感谢您的回答,这就是我第一次要求的,一个例子或一个程序。我会继续寻找答案
    • 将其添加到主帖以获得最佳阅读,添加Edit: Add Maven to project -> pom.xml和pom.xml的内容,谢谢
    【解决方案2】:

    我使用 Intellij 中的人工制品管理它
    一旦我将抽象类(我希望实现的类)放入模块中,它就起作用了

    要遵循的步骤:

    • 在 Intellij 中创建一个模块(我复制了一个现有示例)
    • 添加我希望实现的类
    • 把类的实现
    • 在 src/main/ressources/META-inf/org.my.interface.to.implement 中输入我的班级名称: org.my.implmentation
    • 创建模块的人工制品(您可以按照本指南How to build jars from IntelliJ properly?
    • jar可以部署在JBOSS部署目录下

    我删除了评论中的 pom 以避免混淆。 如果有帮助,我可以通过邮件将 jar 或模块发送给您,请问

    【讨论】:

      猜你喜欢
      • 2017-06-22
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      相关资源
      最近更新 更多