2

我在使用 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 配置:

<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>
4

2 回答 2

2

这个问题实际上是一个编码问题。可能与persistence.xml 文件有关。我重新保存了资源目录下的所有文本文件,它又开始工作了

于 2012-05-25T11:14:10.147 回答
2

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

添加时出现错误

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

到我的包 pom.xml。我的资源目录中的一个文件存在编码问题,并且通过使用

<includes>

一个又一个文件的指令我能够弄清楚它是哪一个。

于 2012-06-16T08:23:32.903 回答