BitBucket Server Maven错误:默认程序包“。” Import-Package语法不允许

时间:2019-04-04 12:00:32

标签: maven bitbucket-server

我正在为BitBucket Server开发一个插件。今天,在我更改了一个依赖项的范围之后,Maven实例开始引发以下错误:

[ERROR] Manifest com.my-plugin:integrationPlugin:atlassian-plugin:0.1-DEV : The default package '.' is not permitted by the Import-Package syntax.
 This can be caused by compile errors in Eclipse because Eclipse creates
valid class files regardless of compile errors.
The following package(s) import from the default package null
[ERROR] Error(s) found in manifest configuration

还原更改后,错误没有消失。

我尝试了其他StackOverflow帖子中介绍的解决方案,但由于以下原因,它们没有帮助我

  • 我没有使用Eclipse
  • 我所有类文件中都声明了所有软件包
  • 捆绑工具已修复此错误

我从Maven调试输出中获得的清单是:

[DEBUG] Final Manifest:
#-----------------------------------------------------------------------
Manifest-Version: 1.0
Atlassian-Build-Date: 2019-04-04T11:44:27+0000
Atlassian-Plugin-Key: com.my-plugin.integrationPlugin
Bnd-LastModified: 1554378274635
Build-Jdk: 1.8.0_191
Built-By: egta136
Bundle-ClassPath: .,META-INF/lib/commons-logging-1.2.jar,META-INF/lib/pd
 fbox-2.0.14.jar,META-INF/lib/fontbox-2.0.14.jar,META-INF/lib/ij-1.52n.j
 ar
Bundle-Description: This is the com.my-plugin:integrationPlugin plu
 gin for Atlassian Bitbucket Server.
Bundle-DocURL: https://example.com
Bundle-ManifestVersion: 2
Bundle-Name: integrationPlugin
Bundle-SymbolicName: com.my-plugin.integrationPlugin
Bundle-Vendor: Example
Bundle-Version: 0.1.0.DEV
Created-By: Apache Maven Bundle Plugin
Export-Package: com.my-plugin.integrationPlugin.api;version="0.1.0"
Import-Package:
 com.apple.eawt;version=0;resolution:=optional,
 com.atlassian.bitbucket.auth;version=0;resolution:=optional,
 com.atlassian.bitbucket.commit;version=0;resolution:=optional,
 com.atlassian.bitbucket.project;version=0;resolution:=optional,
 com.atlassian.bitbucket.user;version=0;resolution:=optional,
 com.atlassian.plugin.spring.scanner.annotation.export;version=0;resolut
 ion:=optional,
 com.atlassian.plugin.spring.scanner.annotation.imports;version=0;resolu
 tion:=optional,
 com.atlassian.sal.api;version=0;resolution:=optional,
 com.atlassian.sal.api.pluginsettings;version=0;resolution:=optional,
 com.atlassian.soy.renderer;version=0;resolution:=optional,
 com.dizainsync.ddm.integrationPlugin.api;version=0;resolution:=optional
 ,
 com.fasterxml.jackson.databind;version=0;resolution:=optional,
 com.google.common.collect;version=0;resolution:=optional,
 javax.crypto;version=0;resolution:=optional,
 javax.crypto.spec;version=0;resolution:=optional,
 javax.imageio;version=0;resolution:=optional,
 javax.imageio.metadata;version=0;resolution:=optional,
 javax.imageio.plugins.jpeg;version=0;resolution:=optional,
 javax.imageio.stream;version=0;resolution:=optional,
 javax.inject;version=0;resolution:=optional,
 javax.script;version=0;resolution:=optional,
 javax.servlet;version=0;resolution:=optional,
 javax.servlet.http;version=0;resolution:=optional,
 javax.swing;version=0;resolution:=optional,
 javax.swing.event;version=0;resolution:=optional,
 javax.swing.table;version=0;resolution:=optional,
 javax.swing.text;version=0;resolution:=optional,
 javax.swing.text.html;version=0;resolution:=optional,
 javax.swing.tree;version=0;resolution:=optional,
 javax.tools;version=0;resolution:=optional,
 javax.xml.namespace;version=0;resolution:=optional,
 javax.xml.parsers;version=0;resolution:=optional,
 javax.xml.xpath;version=0;resolution:=optional,
 org.apache.avalon.framework.logger;version=0;resolution:=optional,
 org.apache.commons.fileupload;version=0;resolution:=optional,
 org.apache.commons.fileupload.disk;version=0;resolution:=optional,
 org.apache.commons.fileupload.servlet;version=0;resolution:=optional,
 org.apache.commons.io;version=0;resolution:=optional,
 org.apache.commons.lang3;version=0;resolution:=optional,
 org.apache.log;version=0;resolution:=optional,
 org.apache.log4j;version=0;resolution:=optional,
 org.bouncycastle.asn1;version=0;resolution:=optional,
 org.bouncycastle.asn1.cms;version=0;resolution:=optional,
 org.bouncycastle.asn1.pkcs;version=0;resolution:=optional,
 org.bouncycastle.asn1.x500;version=0;resolution:=optional,
 org.bouncycastle.asn1.x509;version=0;resolution:=optional,
 org.bouncycastle.cert;version=0;resolution:=optional,
 org.bouncycastle.cms;version=0;resolution:=optional,
 org.bouncycastle.cms.jcajce;version=0;resolution:=optional,
 org.slf4j;version=0;resolution:=optional,
 org.w3c.dom;version=0;resolution:=optional,
 org.xml.sax;version=0;resolution:=optional,
 com.atlassian.plugin.osgi.bridge.external
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Spring-Context: *
Tool: Bnd-3.5.0.201709291849
#-----------------------------------------------------------------------

可能是什么原因造成的?由于将更改还原到pom.xml并没有消除错误,因此这特别奇怪。

2 个答案:

答案 0 :(得分:0)

该错误是由我所拥有的ImageJ依赖性引起的。显然,他们的某些类使用默认软件包,该软件包在maven中不能很好地发挥作用。删除依赖项可以解决此问题。

答案 1 :(得分:0)

我有一个类似的问题。要找出哪种依赖关系可能会阻止OSGi打包工作,请查看错误消息,例如for(int i=0; i<word1.length(); i++) { for(int j=0; j<word2.length(); j++) { if(word1.charAt(i) == word2.charAt(j)) { // return true; the code is not able to traverse through the whole string. } else { return false; } } return true; // The code has now traversed the whole string and can now say that the strings match. Thus return true. }

使用jcfind来标识其来源,例如:

Classes found in the wrong directory: {META-INF/versions/9/module-info.class=module-info}

我正在与父POM提供商联系以解决此问题。