【发布时间】:2017-02-10 14:14:40
【问题描述】:
我一直在尝试将 docx4j 与自定义 JIRA 插件集成,我玩得很开心。第一种方法是添加:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.3.2</version>
</dependency>
到pom.xml 文件。该插件构建良好,但部署(通过 UPM)处于禁用状态,并发出有关缺少功能的警告。我检查了日志,基本错误似乎是:
Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle <project_bundle> [233]: Unable to resolve 233.0: missing requirement [233.0] osgi.wiring.package; (osgi.wiring.package=com.google.appengine.api.images)
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2037)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
at com.atlassian.plugin.osgi.factory.OsgiPlugin.enableInternal(OsgiPlugin.java:400)
这导致了在pom.xml 的instructions 部分向Import-Package 添加排除项以修复未解决的约束。我最终走到了尽头,然后还将依赖项更改为:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.3.2</version>
<exclusions>
<exclusion>
<artifactId>*</artifactId>
<groupId>*</groupId>
</exclusion>
</exclusions>
</dependency>
这导致插件成功部署,但无法在代码中实际使用 docx4j 而不会出错。这就是我现在所处的位置。
我的问题是,有没有人有将 docx4j 与 JIRA 插件集成的经验或知道如何解决这些问题?
我正在使用 docx4j 版本 3.3.2 和 JIRA 7.1.7。
【问题讨论】:
-
如果您只更改 POM 而不进行其他操作(即没有代码更改?),是否会发生此错误?在您的 pom.xml 中,找到 JIRA/Maven 配置部分(在
<build><plugins><plugin><groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-jira-plugin</artifactId> ... <configuration>下)并添加一个新的配置项:<extractDependencies>false</extractDependencies>。之后,删除target目录,重建并重新加载你的插件。它有效吗?顺便说一句,在你的 dep 上放置一个明确的<scope>compile</scope>永远不会有什么坏处,即使这是默认设置。 -
我尝试添加
<extractDependencies>标签,但仍然导致部署错误。如果更改了 POM 并且代码不存在,仍然会出现部署错误。 -
奇怪的是,仅更改 pom 就会产生这种影响,因为 OSGi 导入错误通常不应取决于与它一起打包为库的内容。你能:1- 核对目标目录,从 pom 中删除 dep,构建 jar 并保存副本。 2-添加回dep,重复所有前面的步骤,构建另一个jar。之后,您可以提取两个罐子并区分内容吗?您应该会在 META-INF/lib 中看到一些新的 jar,但在更改方面没有太多其他内容。
标签: java maven jira docx4j jira-plugin