我们的Play Scala项目包含Stanford NLP包作为依赖项,在Build.scala文件中声明如下:
val coreNlp = "edu.stanford.nlp" % "stanford-corenlp" % "3.2.0"
依赖关系在 Maven 上解决,导致下载两个不同的jar文件:
stanford-corenlp-3.2.0.jar
stanford-corenlp-3.2.0-models.jar
搜索 Maven 时显示。
到目前为止,非常好:我们的Play应用程序正常运行。
但是当我们使用以下命令之一打包应用程序时:
play dist
sbt dist
两个jar文件都以相同的名称结尾,
edu.stanford.nlp.stanford-corenlp-3.2.0.jar
在生成的.zip归档工件中,如在.zip文件上运行以下命令所示:
unzip -lv generated-dist.zip
随后,当.zip稍后膨胀以部署应用程序时,两个jar文件中只有一个存活,我们无法运行这样部署的应用程序,因为两个jar中的一个最终丢失。
是否有解决方法,例如一种声明依赖关系的不同方式,以避免在执行dist时发生名称冲突?