【问题标题】:Spotify/missinglink plugin error: Multiple entries with same key: org.apache.logging.log4j.core.util.SystemClock = DeclaredClassSpotify/missinglink 插件错误:具有相同键的多个条目:org.apache.logging.log4j.core.util.SystemClock = DeclaredClass
【发布时间】:2022-01-24 14:29:11
【问题描述】:

几天前我遇到了一个问题,我在 StackOverflow 中记录了解决方案。我希望将它用于其他人。

我正在处理的 maven 项目(java 版本:8)包含 spotify/misinglink 插件,用于检测来自传递依赖的问题。增加库的版本后,我在运行 mvn clean install 时遇到了问题。

以下是简化的pom.xml 文件:

<project...
  <build>
    <plugins>
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>missinglink-maven-plugin</artifactId>
        <version>0.1.1</version>>
      <plugin>
    </plugins>
  </build>
 <dependencies>
...
  </dependencies>
</project>

更新 log4j 库并运行 mvn clean install 命令后,我收到以下错误:

Multiple entries with same key: org.apache.logging.log4j.core.util.SystemClock=DeclaredClass{className=org.apache.logging.log4j.core.util.SystemClock, parents=[org.apache.logging.log4j.core.util.Clock, java.lang.Object], methods={MethodDescriptor{returnType=void, name=<init>, parameterTypes=[]}=DeclaredMethod{descriptor=MethodDescriptor{returnType=void, name=<init>, parameterTypes=[]}, methodCalls=[CalledMethod{owner=java.lang.Object, descriptor=MethodDescriptor{returnType=void, name=<init>, parameterTypes=[]}, lineNumber=22}], fieldAccesses=[]}, MethodDescriptor{returnType=long, name=currentTimeMillis, parameterTypes=[]}=DeclaredMethod{descriptor=MethodDescriptor{returnType=long, name=currentTimeMillis, parameterTypes=[]}, methodCalls=[CalledMethod{owner=java.lang.System, descriptor=MethodDescriptor{returnType=long, name=currentTimeMillis, parameterTypes=[]}, lineNumber=30}], fieldAccesses=[]}}, fields=[]} and org.apache.logging.log4j.core.util.SystemClock=DeclaredClass{className=org.apache.logging.log4j.core.util.SystemClock, parents=[org.apache.logging.log4j.core.time.PreciseClock, org.apache.logging.log4j.core.util.Clock, java.lang.Object], methods={MethodDescriptor{returnType=void, name=<init>, parameterTypes=[]}=DeclaredMethod{descriptor=MethodDescriptor{returnType=void, name=<init>, parameterTypes=[]}, methodCalls=[CalledMethod{owner=java.lang.Object, descriptor=MethodDescriptor{returnType=void, name=<init>, parameterTypes=[]}, lineNumber=28}], fieldAccesses=[]}, MethodDescriptor{returnType=void, name=init, parameterTypes=[org.apache.logging.log4j.core.time.MutableInstant]}=DeclaredMethod{descriptor=MethodDescriptor{returnType=void, name=init, parameterTypes=[org.apache.logging.log4j.core.time.MutableInstant]}, methodCalls=[CalledMethod{owner=java.time.Clock, descriptor=MethodDescriptor{returnType=java.time.Clock, name=systemUTC, parameterTypes=[]}, lineNumber=44}, CalledMethod{owner=java.time.Instant, descriptor=MethodDescriptor{returnType=int, name=getNano, parameterTypes=[]}, lineNumber=45}, CalledMethod{owner=java.time.Clock, descriptor=MethodDescriptor{returnType=java.time.Instant, name=instant, parameterTypes=[]}, lineNumber=44}, CalledMethod{owner=org.apache.logging.log4j.core.time.MutableInstant, descriptor=MethodDescriptor{returnType=void, name=initFromEpochSecond, parameterTypes=[long, int]}, lineNumber=45}, CalledMethod{owner=java.time.Instant, descriptor=MethodDescriptor{returnType=long, name=getEpochSecond, parameterTypes=[]}, lineNumber=45}], fieldAccesses=[]}, MethodDescriptor{returnType=long, name=currentTimeMillis, parameterTypes=[]}=DeclaredMethod{descriptor=MethodDescriptor{returnType=long, name=currentTimeMillis, parameterTypes=[]}, methodCalls=[CalledMethod{owner=java.lang.System, descriptor=MethodDescriptor{returnType=long, name=currentTimeMillis, parameterTypes=[]}, lineNumber=36}], fieldAccesses=[]}}, fields=[]}

错误非常不清楚,我不知道是什么导致了这种行为。 我也在 github Link 上评论了这个问题。

【问题讨论】:

    标签: java maven


    【解决方案1】:

    我通过修改缺少的链接插件解决了这个问题,如下所示:

      <build>
        <plugins>
          <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>missinglink-maven-plugin</artifactId>
            <version>0.1.1</version>
            <executions>
              <execution>
                <phase>none</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
          </plugin>
        </plugins>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2011-04-08
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      相关资源
      最近更新 更多