Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SBT-有没有办法忽略copyResources中的重复映射?_Java_Scala_Sbt_Sbt Assembly - Fatal编程技术网

Java SBT-有没有办法忽略copyResources中的重复映射?

Java SBT-有没有办法忽略copyResources中的重复映射?,java,scala,sbt,sbt-assembly,Java,Scala,Sbt,Sbt Assembly,我正在尝试使用SBT和SBT组件生成一个胖jar。作为一项要求,我需要在jar中添加其他非托管资源(目录)。问题是两个目录中的文件具有相同的文件名和路径。因此,运行程序集会导致copyResources错误-重复映射错误。我想要的行为是,如果文件已经存在,则丢弃另一个文件。有办法做到这一点吗?这样行吗 unmanagedResources in Compile ~= (_.distinct) 这是一个解决方案吗?有更好的解决方案吗?也许汇编插件对您来说就足够了。试试这个: mergeStrat

我正在尝试使用SBT和SBT组件生成一个胖jar。作为一项要求,我需要在jar中添加其他非托管资源(目录)。问题是两个目录中的文件具有相同的文件名和路径。因此,运行程序集会导致copyResources错误-重复映射错误。我想要的行为是,如果文件已经存在,则丢弃另一个文件。有办法做到这一点吗?这样行吗

unmanagedResources in Compile ~= (_.distinct)

这是一个解决方案吗?有更好的解决方案吗?

也许汇编插件对您来说就足够了。试试这个:

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => {
  case PathList("path", "to", "file", xs @ _*) =>
    (xs map {_.toLowerCase}) match {
      case ("myduplicatefile" :: Nil) => MergeStrategy.first
      case _ => MergeStrategy.deduplicate
    }
  case x => old(x)
}
在程序集中合并策略
(xs映射{{toLowerCase})匹配{
案例(“myduplicatefile”::Nil)=>MergeStrategy.first
案例=>MergeStrategy.deduplicate
}
案例x=>旧(x)
}