сборка sbt завершается неудачно из-за различного содержимого файла - PullRequest
2 голосов
/ 23 апреля 2019

Я пытаюсь построить проект в GitLab. В gitlab-ci.yml я запустил сборку sbt и столкнулся с досадным исключением.

[error] (soda/*:assembly) deduplicate: different file contents found in the following:
[error] /root/.ivy2/cache/io.netty/netty-buffer/jars/netty-buffer-4.0.42.Final.jar:META-INF/io.netty.versions.properties
[error] /root/.ivy2/cache/io.netty/netty-common/jars/netty-common-4.0.42.Final.jar:META-INF/io.netty.versions.properties
[error] /root/.ivy2/cache/io.netty/netty-codec-http/jars/netty-codec-http-4.0.42.Final.jar:META-INF/io.netty.versions.properties
[error] /root/.ivy2/cache/io.netty/netty-codec/jars/netty-codec-4.0.42.Final.jar:META-INF/io.netty.versions.properties
[error] /root/.ivy2/cache/io.netty/netty-transport/jars/netty-transport-4.0.42.Final.jar:META-INF/io.netty.versions.properties
[error] /root/.ivy2/cache/io.netty/netty-handler/jars/netty-handler-4.0.42.Final.jar:META-INF/io.netty.versions.properties
[error] /root/.ivy2/cache/io.netty/netty-transport-native-epoll/jars/netty-transport-native-epoll-4.0.42.Final-linux-x86_64.jar:META-INF/io.netty.versions.properties

Я пытался следовать инструкции в sbt-assembly: ошибка дедупликации обнаружена , и похоже, что MergeStrategy на месте, но исключение остается:

[info] Merging files...
[warn] Merging 'NOTICE' with strategy 'rename'
[warn] Merging 'README' with strategy 'rename'
[warn] Merging 'META-INF/NOTICE.txt' with strategy 'rename'
[warn] Merging 'license/NOTICE' with strategy 'rename'
[warn] Merging 'META-INF/NOTICE' with strategy 'rename'
[warn] Merging 'org/xerial/snappy/native/README' with strategy 'rename'
[warn] Merging 'license' with strategy 'rename'
[warn] Merging 'license/LICENSE' with strategy 'rename'
[warn] Merging 'META-INF/license' with strategy 'rename'
[warn] Merging 'META-INF/LICENSE.txt' with strategy 'rename'
[warn] Merging 'LICENSE.txt' with strategy 'rename'
[warn] Merging 'META-INF/LICENSE' with strategy 'rename'
[warn] Merging 'LICENSE' with strategy 'rename'
[warn] Merging 'META-INF/DEPENDENCIES' with strategy 'discard'
[warn] Merging 'META-INF/INDEX.LIST' with strategy 'discard'
[warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'

Я также пытался изменить версию sbt, но проблема остается.

Любая помощь в том, как я могу решить эту проблему, будет отличной.

Ответы [ 3 ]

0 голосов
/ 23 апреля 2019

Однажды у меня была похожая проблема с некоторыми пакетами Java и log4j. Я создал собственную стратегию слияния, в которой я выбрал только первое вхождение. Возможно, вы сможете адаптировать этот код, чтобы он работал на вас:

assemblyMergeStrategy in assembly := {
//  case PathList("javax", "servlet", xs @ _*)         => MergeStrategy.first
  case PathList("org", "apache", "commons", xs @ _*)        =>
 //   println(s"$xs")
    MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
  case "application.conf"                            => MergeStrategy.concat
  case "log4j.properties"                            => MergeStrategy.first
  case "unwanted.txt"                                => MergeStrategy.discard
  case x =>
    val oldStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
}

Может быть, если вы измените

 case PathList("org", "apache", "commons", xs @ _*)        =>
 //   println(s"$xs")
    MergeStrategy.first

к вашим проблемным пакетам (netty) вам удастся решить:

 case PathList("io", "netty", xs @ _*)        =>
 //   println(s"$xs")
    MergeStrategy.first
0 голосов
/ 06 июня 2019

В конце концов я нашел решение этой проблемы. Поскольку это игровой проект, я мог бы использовать активатор, чтобы завершить его и создать пакет. Я использовал следующий код для создания пакета: wget https://downloads.typesafe.com/typesafe-activator/1.3.7/typesafe-activator-1.3.7.zip && разархивировать typesafe-activator-1.3.7.zip 1> / dev / null activator-dist-1.3.7 / activator -Dsbt.log.noformat = true -java-home /usr/lib/jvm/java-1.8-openjdk тест чистой компиляции пакета dist

0 голосов
/ 23 апреля 2019

Посмотрел везде, не смог найти ни одного разрешения. Проверьте следующее разрешение, если это работает для вас, у меня не сработало: https://github.com/sbt/sbt-assembly/issues/297

...