maven bundle插件中存在内部错误。嵌入错误:正在打开资源

maven bundle插件中存在内部错误。嵌入错误:正在打开资源,maven,osgi,Maven,Osgi,我一直在与maven一起构建OSGi项目时遇到问题。我开始犯一个奇怪的错误 我想有些资源被破坏了。但我不知道是哪一个。我已尝试删除.m2/repository。但问题依然存在。 有没有办法解决这个问题 [ERROR] An internal error occurred java.io.IOException: Opening resource at aQute.lib.osgi.AbstractResource.getLocalBytes(AbstractResource.java:35) a

我一直在与maven一起构建OSGi项目时遇到问题。我开始犯一个奇怪的错误

我想有些资源被破坏了。但我不知道是哪一个。我已尝试删除.m2/repository。但问题依然存在。 有没有办法解决这个问题

[ERROR] An internal error occurred
java.io.IOException: Opening resource
at aQute.lib.osgi.AbstractResource.getLocalBytes(AbstractResource.java:35)
at aQute.lib.osgi.AbstractResource.write(AbstractResource.java:46)
at aQute.lib.osgi.Jar.writeResource(Jar.java:445)
at aQute.lib.osgi.Jar.write(Jar.java:224)
at aQute.lib.osgi.Jar.write(Jar.java:192)
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:362)
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264)
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255)
at    org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: java.util.UnknownFormatConversionException: Conversion = '�'
at java.util.Formatter.checkText(Formatter.java:2519)
at java.util.Formatter.parse(Formatter.java:2501)
at java.util.Formatter.format(Formatter.java:2430)
at java.util.Formatter.format(Formatter.java:2383)
at java.lang.String.format(String.java:2781)
at aQute.lib.osgi.Processor.formatArrays(Processor.java:1273)
at aQute.lib.osgi.Processor.warning(Processor.java:116)
at aQute.lib.osgi.Macro.replace(Macro.java:144)
at aQute.lib.osgi.Macro.process(Macro.java:71)
at aQute.lib.osgi.Macro.process(Macro.java:58)
at aQute.lib.osgi.Macro.process(Macro.java:53)
at aQute.lib.osgi.Macro.process(Macro.java:964)
at aQute.lib.osgi.PreprocessResource.getBytes(PreprocessResource.java:25)
at aQute.lib.osgi.AbstractResource.getLocalBytes(AbstractResource.java:31)
... 26 more
 [INFO] ------------------------------------------------------------------------
 [ERROR] BUILD ERROR
 [INFO] ------------------------------------------------------------------------
 [INFO] Internal error in maven-bundle-plugin

 Embedded error: Opening resource
 Conversion = '�'
 [INFO] ------------------------------------------------------------------------
 [INFO] Trace
 org.apache.maven.lifecycle.LifecycleExecutionException: Internal error in maven-bundle-plugin
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Internal error in maven-bundle-plugin
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:412)
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264)
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
... 17 more
Caused by: java.io.IOException: Opening resource
at aQute.lib.osgi.AbstractResource.getLocalBytes(AbstractResource.java:35)
at aQute.lib.osgi.AbstractResource.write(AbstractResource.java:46)
at aQute.lib.osgi.Jar.writeResource(Jar.java:445)
at aQute.lib.osgi.Jar.write(Jar.java:224)
at aQute.lib.osgi.Jar.write(Jar.java:192)
at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:362)
... 21 more
Caused by: java.util.UnknownFormatConversionException: Conversion = '�'
at java.util.Formatter.checkText(Formatter.java:2519)
at java.util.Formatter.parse(Formatter.java:2501)
at java.util.Formatter.format(Formatter.java:2430)
at java.util.Formatter.format(Formatter.java:2383)
at java.lang.String.format(String.java:2781)
at aQute.lib.osgi.Processor.formatArrays(Processor.java:1273)
at aQute.lib.osgi.Processor.warning(Processor.java:116)
at aQute.lib.osgi.Macro.replace(Macro.java:144)
at aQute.lib.osgi.Macro.process(Macro.java:71)
at aQute.lib.osgi.Macro.process(Macro.java:58)
at aQute.lib.osgi.Macro.process(Macro.java:53)
at aQute.lib.osgi.Macro.process(Macro.java:964)
at aQute.lib.osgi.PreprocessResource.getBytes(PreprocessResource.java:25)
    at aQute.lib.osgi.AbstractResource.getLocalBytes(AbstractResource.java:31)
... 26 more
根据要求,maven bundle插件配置:

<plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Import-Package>*</Import-Package>
                    <Export-Package>org.opennaas.extensions.idb.*;version="${project.version}"</Export-Package>
                    <Meta-Persistence>META-INF/persistence.xml</Meta-Persistence>
                </instructions>
            </configuration>
        </plugin>

org.apache.felix
maven捆绑插件
符合事实的
*
org.opennaas.extensions.idb.*;version=“${project.version}”
META-INF/persistence.xml

问题实际上是编码问题。可能是persistence.xml文件。我将所有文本文件重新保存在resources目录下,它又开始工作了

问题实际上是编码问题。可能是persistence.xml文件。我将所有文本文件重新保存在resources目录下,它再次开始工作

遇到了相同的错误。我想与大家分享我的发现,在诊断信息得到改进之前,这些发现可能会有所帮助

我在添加时出错了

<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

src/main/resources
符合事实的
到我的bundles pom.xml。我的资源目录中的一个文件存在编码问题,通过使用

<includes>


指令,一个接一个的文件,我能找出它是哪一个

遇到同样的错误,我想分享我的发现,在诊断信息得到改进之前,这些发现可能会有所帮助

我在添加时出错了

<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

src/main/resources
符合事实的
到我的bundles pom.xml。我的资源目录中的一个文件存在编码问题,通过使用

<includes>


指令,一个接一个的文件,我能找出它是哪一个

这一转变是不可避免的�' 看起来很可疑,我会检查POM是否为拉丁文编码,并确保.m2目录前面的路径中没有非ascii字符。请编辑您的问题,以包括maven bundle插件的配置。显然,问题在于编码。但不是pom.xml,而是persistence.xml(以及其他可能的资源文件)。我重新保存了所有资源,现在一切正常。请提交一个bug,并在github/bndtools上请求更好的诊断/bnd@santiagozky,将您以前的评论添加为答案并接受它可能是一个好主意。@earcam。我需要等待才能接受我自己的答案�' 看起来很可疑,我会检查POM是否为拉丁文编码,并确保.m2目录前面的路径中没有非ascii字符。请编辑您的问题,以包括maven bundle插件的配置。显然,问题在于编码。但不是pom.xml,而是persistence.xml(以及其他可能的资源文件)。我重新保存了所有资源,现在一切正常。请提交一个bug,并在github/bndtools上请求更好的诊断/bnd@santiagozky,将您以前的评论添加为答案并接受它可能是一个好主意。@earcam。我需要等待才能接受我自己的答案。在尝试将证书(keystore.jks)复制到捆绑包时,我遇到了类似的错误。我解决这个问题的方法是通过设置:false禁用过滤发生的事情是插件试图以文本形式读取证书并将证书转换为UTF-8,不好:)原因是过滤加载文件并检查其中的内容,简单的方法是在不需要的情况下禁用筛选,或者更好地使用tag
jks
reference添加特殊排除模式:或者对于更通用的筛选方法:在尝试将证书(keystore.jks)复制到捆绑包时遇到类似错误。我解决这个问题的方法是通过设置:false禁用过滤发生的事情是插件试图以文本形式读取证书并将证书转换为UTF-8,不好:)原因是过滤加载文件并检查其中的内容,简单的方法是在不需要的情况下禁用过滤,或者最好使用标记
jks
reference:添加特殊排除模式,或者使用更通用的过滤方法: