Atlassian JIRA Java REST API 赋格问题

Wor*_*ead 5 java rest jira

我想使用简单的 Java 程序从 JIRA 服务器获取数据。

在尝试了很多不同的解决方案后,我在我的 POM 中得到了这个。

<repositories>
    <repository>
        <id>atlassian-public</id>
        <url>https://packages.atlassian.com/maven/repository/public</url>
    </repository>
    <repository>
        <id>atlassian-public</id>
        <url>https://mvnrepository.cpm/artifact/com.atlassian.fugue/fugue</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>5.2.0</version>
    </dependency>
    <dependency>
        <groupId>io.atlassian.fugue</groupId>
        <artifactId>fugue</artifactId>
        <version>4.7.2</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

我的项目已构建,但当我运行它时,我得到下面的问题描述。我相信简单的记录器是一个警告,但是我应该做什么才能在运行时找到 io.atlassian.fugue?

最佳 rgds,

尼克拉斯

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder了解更多详细信息。线程“main”中出现异常 java.lang.NoClassDefFoundError:io/atlassian/fugue/Suppliers at com.atlassian.httpclient.apache.httpcomponents.ApacheAsyncHttpClient.(ApacheAsyncHttpClient.java:80) at com.atlassian.httpclient.apache.httpcomponents。 DefaultHttpClientFactory.doCreate(DefaultHttpClientFactory.java:61) 在 com.atlassian.httpclient.apache.httpcomponents.DefaultHttpClientFactory.create(DefaultHttpClientFactory.java:36) 在 com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory.createClient( AsynchronousHttpClientFactory.java:65) 在 com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.create(AsynchronousJiraRestClientFactory.java:36) 在 com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.createWithAuthenticationHandler( AsynchronousJiraRestClientFactory.java:47) 在 MyJiraClient.getJiraRestClient(MyJiraClient.java:44) 在 MyJiraClient.(MyJiraClient.java:27) 在 MyJiraClient.main(MyJiraClient.java:31) 引起:java.lang.ClassNotFoundException:io.atlassian .fugue.Suppliers 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java .base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 9 更多

reo*_*wil 7

jira-rest-java-client-core这可能是(JRJC) 和io.atlassian.fugue版本无法协同工作的问题。JRJC 需要 Fugue,但您需要将正确版本的 Fugue 与给定版本的 JRJC 一起使用。

我也一直在努力解决这个问题,但除了尝试(和失败)之外,我还没有找到任何地方/任何方法来弄清楚哪个赋格版本实际上与最新的 JRJC 版本配合得很好。我遵循Baeldung的示例,但那里使用的 JRJC 版本是旧的(4.0.0),所以我想使用更新的版本。

通过反复试验,我发现这些版本可以很好地协同工作,但 JRJC 版本并不是最新的:

<dependency>
    <groupId>com.atlassian.jira</groupId>
    <artifactId>jira-rest-java-client-core</artifactId>
    <version>5.1.0</version>
</dependency>

<dependency>
    <groupId>io.atlassian.fugue</groupId>
    <artifactId>fugue</artifactId>
    <version>4.7.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

另请注意,(如 Baeldung 示例中所示)有一个带有 groupId com .atlassian.fugue (而不是io .atlassian.fugue)的赋格工件。


mon*_*e83 0

首先,SLF4J:无法加载类警告,我认为与您的主要错误不同,您可以通过添加 SLF4J Bridge maven 依赖项来清除或修复警告:

 <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.13.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.13.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.13.3</version>
    </dependency>
 
Run Code Online (Sandbox Code Playgroud)

然后你可以分析另一个根本问题。