BitBucket Server Maven 错误:导入包语法不允许默认包'.'



我正在为 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并没有消除错误。

该错误是由我拥有的ImageJ依赖项引起的。显然,他们的一些类使用默认包,该包不能很好地与maven一起使用。删除依赖项可解决此问题。

我也有类似的问题。要找出哪个依赖项可能会阻止 OSGi 打包工作,请查看错误消息,例如Classes found in the wrong directory: {META-INF/versions/9/module-info.class=module-info}

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

./target/classes/META-INF/lib/classgraph-4.8.43.jar META-INF/versions/9/module-info.class

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

最新更新