很多关于playframework / play-java-seed.g8的警告

问题描述 投票:1回答:1

我使用Play Java seed创建了一个Play项目:

sbt new playframework/play-java-seed.g8

使用以下选项:

name [play-java-seed]: name
organization [com.example]:
scala_version [2.12.4]:
play_version [2.6.15]:
sbt_version [1.0.4]:

执行sbt run后我收到了很多警告:

Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
[info] Loading settings from plugins.sbt,scaffold.sbt ...
[info] Loading project definition from E:\Play\name\project
[info] Updating {file:/E:/Play/name/project/}name-build...
[info] Done updating.
[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]  * org.webjars:webjars-locator-core:0.33 is selected over 0.32
[warn]      +- com.typesafe:npm_2.12:1.2.1                        (depends on 0.32)
[warn]      +- com.typesafe.sbt:sbt-web:1.4.3 (scalaVersion=2.12, sbtVersion=1.0) (depends on 0.32)
[warn]  * org.codehaus.plexus:plexus-utils:3.0.17 is selected over {2.1, 1.5.5}
[warn]      +- org.apache.maven:maven-settings:3.2.2              (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-repository-metadata:3.2.2   (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-aether-provider:3.2.2       (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-model:3.2.2                 (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-core:3.2.2                  (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-artifact:3.2.2              (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-settings-builder:3.2.2      (depends on 3.0.17)
[warn]      +- org.apache.maven:maven-model-builder:3.2.2         (depends on 3.0.17)
[warn]      +- org.sonatype.plexus:plexus-sec-dispatcher:1.3      (depends on 1.5.5)
[warn]      +- org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5  (depends on 2.1)
[warn]  * com.google.guava:guava:23.0 is selected over {10.0.1, 16.0, 20.0}
[warn]      +- io.methvin:directory-watcher:0.3.2                 (depends on 23.0)
[warn]      +- com.fasterxml.jackson.datatype:jackson-datatype-guava:2.8.8 (depends on 10.0.1)
[warn]      +- org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5  (depends on 10.0.1)
[warn]      +- com.spotify:docker-client:8.9.0                    (depends on 10.0.1)
[warn] Run 'evicted' to see detailed eviction warnings
[info] Loading settings from build.sbt ...
[info] Set current project to name (in build file:/E:/Play/name/)
[info] Updating {file:/E:/Play/name/}root...
[info] Done updating.
[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]  * com.google.guava:guava:22.0 is selected over {19.0, 20.0}
[warn]      +- com.typesafe.play:play_2.12:2.6.15 ()              (depends on 22.0)
[warn]      +- org.reflections:reflections:0.9.11                 (depends on 20.0)
[warn]      +- com.google.inject:guice:4.1.0                      (depends on 19.0)
[warn]  * com.typesafe.akka:akka-stream_2.12:2.5.11 is selected over 2.4.20
[warn]      +- com.typesafe.play:play-streams_2.12:2.6.15 ()      (depends on 2.5.11)
[warn]      +- com.typesafe.akka:akka-http-core_2.12:10.0.13 ()   (depends on 2.4.20)
[warn]  * com.typesafe.akka:akka-actor_2.12:2.5.11 is selected over 2.4.20
[warn]      +- com.typesafe.play:play_2.12:2.6.15 ()              (depends on 2.5.11)
[warn]      +- com.typesafe.akka:akka-stream_2.12:2.5.11 ()       (depends on 2.5.11)
[warn]      +- com.typesafe.akka:akka-slf4j_2.12:2.5.11 ()        (depends on 2.5.11)
[warn]      +- com.typesafe.akka:akka-parsing_2.12:10.0.13 ()     (depends on 2.4.20)
[warn] Run 'evicted' to see detailed eviction warnings

--- (Running the application, auto-reloading is enabled) ---

[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Enter to stop and go back to the console...)

我的机器上安装了java 9.0.4和sbt 1.1.0。

提前感谢您的回答。

playframework playframework-2.6
1个回答
0
投票

这些驱逐警告有一个Github issue开放。由于Play是成熟且广泛使用的框架,因此忽略这些警告很可能是安全的。有三种可能的选择:

  1. 保持警告可见,直到Play项目修复它们
  2. 通过evictionWarningOptions隐藏警告
  3. 通过dependencyOverrides手动覆盖依赖项

我个人建议第一个选择。

这里有一点关于eviction warnings。请考虑以下警告:

[warn]  * com.typesafe.akka:akka-stream_2.12:2.5.11 is selected over 2.4.20
[warn]      +- com.typesafe.play:play-streams_2.12:2.6.15 ()      (depends on 2.5.11)
[warn]      +- com.typesafe.akka:akka-http-core_2.12:10.0.13 ()   (depends on 2.4.20)

它声明play-streamsakka-http-core都依赖于akka-stream,但它们依赖于它的不同版本。默认情况下,SBT通过选择更高版本(即2.5.11)来解决冲突。请注意这是如何使akka-http-core依赖于2.5.11,即使它只是针对2.4.20进行编译,换句话说,它现在依赖于未来测试它的未来库。如果2.5.11不是compatible2.4.20,那么这可能会在项目中引入错误。比如说你有一辆建于2001年的汽车,但是你从2002年开始盲目地安装一台发动机。这款汽车现在会像2001年那样表现吗?如果成千上万的司机驾驶这辆车没有任何问题,那可能是安全的。

© www.soinside.com 2019 - 2024. All rights reserved.