我想使用简单的 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 更多
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)的赋格工件。
首先,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)
然后你可以分析另一个根本问题。
| 归档时间: |
|
| 查看次数: |
3151 次 |
| 最近记录: |