问题标签 [meta-inf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2203 浏览

java - Ant Contrib If 用于可选 JAR META-INF

我有一个场景,我试图build.xml在多个项目中重用同一个文件。在每种情况下,最终目标都是distJAR 将所有内容都完成。唯一的区别是一些项目有一个src/main/java/META-INF/*目录,而另一些则没有(只有一个src/main/java/*目录)。

如果构建看到可用的目录,我想使用 Ant-Contrib<if/>任务来选择性地定义一个目录。所以是这样的:META-INF/src/main/java/META-INF/*

但我在这里对两件事感到窒息:

  1. 当我运行这个目标时,我得到一个构建异常,指出我不能<if/><jar/>任务中嵌套一个;和
  2. 我不确定如何配置任务以在类路径的根目录<jar/>创建目录,并将所有内容复制到其中。META-INFsrc/main/java/META-INF

有什么想法吗?提前致谢。

0 投票
2 回答
8017 浏览

netbeans - Netbeans 项目中没有默认的 META-INF 文件夹——将文件添加到哪里?

如何让 Netbeans 添加javamail.providers到 META-INF 文件夹(我手动添加)而不进入 ant 构建文件中的杂草?

这有点奇怪,因为 manifest.mf 最终出现在生成的 jar 中的 META-INF 文件夹中(正确),但位于 META-INF 文件夹(我手动添加)之外:

这是项目:

这是 Netbeans 构建的结果 JAR:

这是对GNU 打包建议的回应。

也可以看看:

http://article.gmane.org/gmane.comp.java.netbeans.user/176994

0 投票
1 回答
3865 浏览

android - 将“META-INF/services”文件保存在 apk 中

我有一个已经在 J​​avaSE 上工作的自定义字符集。

我的 CharsetProvider 的类在一个文件中指定,java.nio.charset.spi.CharsetProvider并且META-INF/services所有内容都正常加载并按预期工作。

但是现在我也在 android 上使用 lib,但是字符集没有加载到 Android-App 中。

如何集成我的字符集,以便它可以像预期的那样在 Android 应用程序中使用?

目前我正在做这样的解决方法:

哪个有效,但对我来说似乎无效,因为每次我尝试使用自己的字符集进行这样的解码时,都会引发异常并创建 CharsetProvider-Object。

当然可以通过单例模式减少创建。但问题是要完全避免直接使用 MyCharsetProvider。

编辑 :

由于META-INF/services/java.nio.charset.spi.CharsetProvider在 apk 中丢失了,我虽然可能 proguard 删除了它。然后我在 proguard.cfg 中尝试了以下选项:

但问题仍然存在。那么如何META-INF/services使用ant(netbeans)自动将这些文件从我的apk中获取?

0 投票
1 回答
393 浏览

image - CMYKJPEGImageReaderSpi 未加载

我在阅读 CMYK JPEG 图像时遇到问题,并使用下面的 url 作为解决问题的参考。

http://www.randelshofer.ch/blog/2011/08/reading-cmyk-jpeg-images-with-java-imageio/

我在路径 /META-INF/services/javax.imageio.spi.ImageReaderSpi 下的文件 javax.imageio.spi.ImageReaderSpi 中给出了配置 org.monte.media.jpeg.CMYKJPEGImageReaderSpi。

这在 Eclipse 中完美运行,并且图像阅读器已成功加载。

这个文件在部署时没有加载,我可以在 lib 文件夹内我想要的 jar 文件中找到生成的 war 文件中的文件夹和文件,我想我需要将它添加到 java 类路径中。

请帮助我添加到类路径或是否有任何其他问题。

0 投票
1 回答
169 浏览

maven - tomee mvn install 不要打包 META-INF

尝试构建战争文件时,maven 不使用 pom 打包任何 META-INF:

我试着把 META-INF 放在任何地方。并且不要替换 tomee.xml 我尝试了以下结构:

myApp->src->resources->meta-inf/persistence.xml myApp->src->webapp->meta-inf/persistence.xml

0 投票
1 回答
14677 浏览

maven - Maven 战争在两个地方有 META-INF 文件夹

我正在开发一个使用 JAAS 的项目,不幸的是,Tomcat 需要将一个文件放在战争根目录的 META-INF 文件夹中

我认为这已经很奇怪了,因为 WAR 的默认 META-INF 位置位于类文件夹中。

所以我正在使用 Maven,它指出 src/main/resources/META-INF 中的任何内容都将被复制到适当的位置,它确实如此。奇怪的是,它还在文件结构的根目录中创建了一个 META-INF 文件夹,给我留下了 2 个 META-INF 文件夹。

项目结构

mvn包后

所以,如果战争标准规定 META-INF 应该在 classes 文件夹下,如 #2 中,为什么 maven war 会创建 #1 文件夹。有没有办法让它将文件复制到该文件夹​​而不是#2?

问候

0 投票
1 回答
1576 浏览

java - 使用 `META-INF/services` 进行驱动程序的内部管道

我开发了 Jaybird JDBC 驱动程序,今天我遇到了一个问题(JDBC-325如何使用休眠配置 Jaybird),该问题与 Jaybird 如何加载其某些组件以及如何(在这种情况下)NetBeans 限制类加载有关。

该问题与 Jaybird 使用条目加载自身部分的方式META-INF/services以及 NetBeans 用于 Hibernate 向导的类加载器显式忽略这些文件有关(请参阅下面的详细信息)。

我可以通过(也)尝试加载作为 Jaybird 实现的一部分的插件的硬编码列表,或者通过将定义移动到不同的位置来解决这个问题。

但是我想知道像 Jaybird 那样用于内部目的是否很奇怪(或错误)META-INF/services

我也不明白为什么 NetBeans 会排除加载META-INF/services? Drew的评论似乎表明 NetBeans 在加载驱动程序时使用它来解决错误(请参阅此问题),尽管我认为用户会更好地解决包括驱动程序的所有依赖项在内的问题。

问题详情

Jaybird 为支持的协议使用插件,例如 Type 4 协议、自定义 Type 4 Open Office 协议、Type 2 嵌入式(本机)协议和 Type 2 本机客户端协议。我还相信第三方曾经使用它来提供将 Oracle 特定语法转换为 Firebird 语法的驱动程序。

所有这些插件都在中列出META-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin并以类似于java.util.ServiceLoader(当前 2.2.x 驱动程序仍支持 Java 5,因此我们实际上不使用ServiceLoader)的方式加载。对于即将发布的版本,我还计划将其用于支持的连接编码和(有线)协议定义。这将允许“自定义”编码定义(例如扩展支持的编码,或使用替代编码)或不同的协议实现(例如,用于故障排除、自定义日志记录等)。

现在实际的问题是 Netbeans 向导Hibernate 映射文件和来自数据库的 POJO使用自定义类加载器(org.netbeans.modules.hibernate.util.CustomClassLoader),并且这个类加载器忽略META-INF/services. 请注意,只有这个向导有问题,Netbeans 本身可以毫无问题地使用驱动程序。

代码忽略META-INF/services

这导致没有插件被发现并且驱动程序没有协议,这导致NullPointerException内部 Netbeans,因为没有创建连接。

0 投票
1 回答
1267 浏览

jpa - JPA:配置持久性提供程序

  • 我有一个用 maven 创建的简单 java 项目(快速入门原型)

  • 我正在尝试为 drools 会话配置 JPA 持久性(代码来自 drools 文档)

    1. 我在 pom.xml 中添加了 drools-persistence-jpa、Bitronix Transaction Manager 和 com.h2database 依赖项

    2. 我在“src/META-INF”中的 Eclipse 项目中创建了一个 META-INF 文件夹作为 Source-Folder

    3. 我在那里添加了 persistence.xml 和 jndi.properties 文件。

    4. 在我的测试用例中,我有以下代码:

    [...] EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.drools.persistence.jpa"); [...]

运行测试时,我得到以下异常:

javax.persistence.PersistenceException:在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) 中的 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) 中没有名为 org.drools.persistence.jpa 的 EntityManager 的持久性提供程序com.sample.MyTest.testJPA(MyTest.java:112)

我比较确定,我创建 META-INF 或 persistence.xml 的方式有问题(见下文)。有什么建议么?

0 投票
1 回答
634 浏览

tomcat - 如何在 context.xml 文件中引用 jasperserver 数据库的公共架构?

我正在尝试让 Jasperserver 社区版在 tomcat 上运行。在使用来自 buildomatic 的安装脚本成功构建后,我正在按照文档中的步骤操作,我尝试运行 tomcat 服务器,但它抱怨“关系 jiresourcefolder 不存在”。检查数据库后,所有必需的表都在 jasperserver 数据库公共模式下加载。

在 (jasperserver/META-INF) 下找到的 context.xml 中,引用了正确的数据库。有谁知道如何引用公共 sh=chema 以便可以访问所有必需的表,或者是否需要我错过任何其他配置?

0 投票
0 回答
401 浏览

java - Ant:解压缩模式集不排除 META-INF 和 jUnit

因为有些人忘记将 junit 范围设置为“测试”,所以它已经与我们的库一起打包。由于我们在最终产品中不需要 junit,因此我想在解压缩任务中排除类文件。

注意:此任务在进一步的构建过程中是必需的,因此不可以选择。

到目前为止,我的解压缩语句如下所示:

我尝试了各种组合,但 junit 和 META-INF 文件每次都会神奇地重新出现。作为一种解决方法,我添加了一个带有文件集的删除语句。如果我可以选择在 unzip 语句中添加模式集,它可以工作,但完全没有必要——在我看来:

我已经阅读了手册,但没有找到有关如何解决此问题的线索。

我错过了什么,模式不正确还是其他什么?