【问题标题】:gradle:issues with OSGI-INF folder for OSGI/SCR pluginsgradle:OSGI/SCR 插件的 OSGI-INF 文件夹问题
【发布时间】:2015-08-24 20:50:53
【问题描述】:

当我尝试生成具有 OSGI-INF 文件夹信息的 OSGI 捆绑包时,我无法在我的 gradle 构建文件中使用 apply plugin:'scr' 创建该文件夹。请指点?

我正在使用 Java 1.8。失败的任务是 task ':processScrAnnotations'

我收到以下异常,它没有提供有用的消息:

Caused by: java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner.java:172)
        at org.apache.felix.scrplugin.helper.ClassScanner.scanSources(ClassScanner.java:143)
        at org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:149)
        at org.apache.felix.scrplugin.ant.SCRDescriptorTask.execute(SCRDescriptorTask.java:129)
        at org.apache.felix.scrplugin.ant.SCRDescriptorTask$execute.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
        at com.twcable.gradle.scr.ScrPlugin.configureAction(ScrPlugin.groovy:77)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:382)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:806)
        at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:444)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:369)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
        at com.twcable.gradle.scr.ScrPlugin$_addScrTask_closure1_closure4.doCall(ScrPlugin.groovy:59)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015)
        at groovy.lang.Closure.call(Closure.java:423)
        at groovy.lang.Closure.call(Closure.java:439)
        at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:554)
        at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:535)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 68 more

【问题讨论】:

  • 你用的是什么 Gradle 插件?

标签: gradle osgi osgi-bundle


【解决方案1】:

您使用的 gradle 插件本身使用的是旧版本的 ASM,它不理解 Java 8 类文件。您需要作者更新 gradle 插件以使用能够理解 Java 8 类文件的更新版本的 ASM。

【讨论】:

    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 2010-10-02
    • 2014-08-17
    相关资源
    最近更新 更多