java - 添加 META-INF/services 目录时 jar 中没有 .class 文件

标签 java maven jar meta-inf

我刚刚开始使用 Maven,但在创建所有类的 JAR 时遇到问题。事实上,我必须包含位于 WEB-INF/services/javax.annotation.processing.Processor 的服务。

我已经测试了此问题的不同问题,当我删除 /services 时,似乎是这样。目录中,JAR 包含所有 .class 文件。

我读到这可能是错误的 Maven 文件夹结构,但当我有 services 时,问题就发生了。目录存在。

这是我的 pom.xml 文件使用资源的摘录:

<resource>
    <directory>${myRessources}</directory>
        <includes>
            <include>META-INF/**/*</include>
         </includes>
</resource>

maven 控制台告诉我资源已成功复制,因此我认为这部分不是问题。

有什么想法吗?

最佳答案

嘿,你想使用这样的东西:

<build>
  <sourceDirectory>src/main/java (or your .java you want to compile)</sourceDirectory>
   <resources>
    <resource>
     <directory>src/main/resources/META-INF/</directory>
     <targetPath>META-INF</targetPath>
    </resource>
   </resources>
</build>

sourceDirectory 告诉 maven 编译什么内容并将其放入目标文件夹(以及 jar 中)。然后资源说将我的 META-INF/文件夹中的所有内容放入 jar 文件的 META-INF 文件夹中。

关于java - 添加 META-INF/services 目录时 jar 中没有 .class 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505751/

相关文章:

java - 使用 Play 框架或插件进行实时页面更新

maven - 我的 java 目录在哪里?

java - 如何从外部属性文件填充 Liquibase 参数值?

java - 在 linux 上从终端运行 jar 文件

java - 类引用取自不同的 jar

java - 我用 ant 构建的 jar 文件双击时无法运行

对具有无界通配符类型的方法参数使用泛型 lambda 的 Java 编译错误

java - 转换 Java 函数式接口(interface)

java - 指定的 key 太长 - 最大 key 长度为 767 字节

java - 如果插件 jar 中的不同 jar 具有相同的类名,则访问类