使用SDK 6.3.10,我正在尝试为Jira 7.x开发一个插件。
此插件应使用名为“ svnkit”的外部Java依赖项。我将其添加为pom中的依赖项(如果我正确理解了https://developer.atlassian.com/server/framework/atlassian-sdk/managing-dependencies/,就足够了)
<dependency>
<groupId>com.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.1.0</version>
</dependency>
现在,我在atlas-run
日志中收到了消息:
[INFO] [talledLocalContainer] 2018-07-04 16:50:55,310 http-nio-2990-exec-3 ERROR anonymous 1010x2x1 - 0:0:0:0:0:0:0:1 /secure/DemoAction!default.jspa [c.a.j.web
.dispatcher.JiraWebworkActionDispatcher] Exception thrown from action 'DemoAction!default', returning 404
[INFO] [talledLocalContainer] WebworkConfigurationNotFoundException{class=class webwork.config.XMLActionConfiguration, message='No such view mapping', name='Dem
oAction.actionRoles.actionRoles'}
插件本身在浏览器中返回404页面。没有svnkit,一切都可以在浏览器中运行。请注意,我没有在Java代码中使用svnkit。
我丝毫不知道此消息的含义或寻找补救措施的线索。
答案 0 :(得分:0)
首先,您需要确切地知道在何处使用svnkit
库,以及该库在您的项目中的用途是什么。根据您提供的信息,我只能远程指导您找到正确的解决方案。
在JIRA / OSGI世界中,您基本上有两种选择:
atlas-package
(mvn package
)的结果是将您项目的字节码和所使用的库的字节码打包到JAR文件中。为了清楚起见,我跳过了其他任何资源。在您的情况下,我认为您要运行插件/ JAR的svnkit
库在JIRA中不存在。这意味着,您需要自己提供它。漂亮/推荐的方式是:
svnkit
以准备好OSGI,JAR必须是有效的OSGI软件包。 (您可以在Atlassian Maven存储库中的某个位置或Internet的某个位置找到已经准备好的捆绑包)在您的pom.xml中添加范围为provided
的此依赖项:例如:
<dependency>
<groupId>com.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
为maven-amps-plugin
(maven-jira-plugin
)添加配置以将svnkit
打包为OSGI捆绑包依赖项
<build>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-jira-plugin</artifactId>
<version>${amps.version}</version>
<configuration>
<extractDependencies>false</extractDependencies>
<pluginDependencies>
<pluginDependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
</pluginDependency>
</pluginDependencies>
...
</configuration>
</plugin>
</plugins>
</build>
这样,atlas-package
还将产生一个OBR文件,其中将包含您的项目JAR加上svnkit
捆绑包
也可以看看:
https://developer.atlassian.com/server/framework/atlassian-sdk/bundling-extra-dependencies-in-an-obr/
请注意:
<dependency>
<groupId>com.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.1.0</version>
</dependency>
与以下内容完全相同:
<dependency>
<groupId>com.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
这意味着svnkit
将直接或间接包含在您的JAR中(JAR中的JAR)
另一方面,您的日志指出您错误配置了DemoAction
。如果您同时提供pom.xml
和atlassian-plugin.xml
,以使我们更好地了解您的问题,那就更好了。