Java 在测试期间指定Manifest.MF-Fat/着色JAR
我需要在MANIFEST.MF文件中显示一些值,以使JAI对ImageIO.read满意Java 在测试期间指定Manifest.MF-Fat/着色JAR,java,maven,manifest.mf,Java,Maven,Manifest.mf,我需要在MANIFEST.MF文件中显示一些值,以使JAI对ImageIO.read满意 在maven周期的测试阶段,它们需要存在于何处才能可用?这不在测试资源中吗 src/test/resources/META-INF/MANIFEST.MF 经过广泛的搜索,这似乎是不可能的 但是,这个问题永远不会出现,因为JAI在JAR中,并且JAR应该包含所需的值。因此,正如在一个类似问题上所建议的那样,我确实在尝试编译JAI。在我的例子中,因为我将我的一个组件作为可执行文件部署给天真的用户,所以我使用
在maven周期的测试阶段,它们需要存在于何处才能可用?这不在测试资源中吗
src/test/resources/META-INF/MANIFEST.MF
经过广泛的搜索,这似乎是不可能的 但是,这个问题永远不会出现,因为JAI在JAR中,并且JAR应该包含所需的值。因此,正如在一个类似问题上所建议的那样,我确实在尝试编译JAI。在我的例子中,因为我将我的一个组件作为可执行文件部署给天真的用户,所以我使用shade插件构建了一个“胖JAR”,它分别包含所有类 不幸的是,我将用于构建该应用程序的pom.xml文件复制到了我引用的一个类库中,因此该类库也变成了一个“胖JAR”。这个jar不包含清单中的值,即使它引用了JAI库,结果导致了混乱。这个问题变得更加复杂,因为这个错误是几个月前犯的,直到现在,在一个无关的更改之后,JVM才开始使用特定Fat引用JAR中的JAI版本 如果你遇到同样的问题(互联网搜索显示其他人也有),首先尝试两件事
我确实试过了,但它似乎没有收到。文件将被复制,但如果您想将其放入war或jar中,还需要确保使用的是src/test/resources中的版本,而不是src/main/resources中的版本。我们需要更多关于您如何构建jar的信息来帮助您。@PaulHicks jar文件不是他的问题,他只希望在测试阶段(即创建jar之前)更改清单。是的,但问题可能是正确的清单被忽略了。我们不知道他到底在哪里寻找清单,也不知道他流程的哪一部分试图使用清单。因此,他要调查的另一件事可能是一个好主意。如下所示,似乎manifest.mf值只有在您实际拥有一个JAR时才可用