如何从sbt dist中排除一些jar并在运行时加载它们

时间:2018-09-04 15:08:03

标签: scala sbt

我有一个900MB的jar(stanford-corenlp-models),我想从dist中排除,因此生成的zip文件较小。我希望它在部署时返回到classpath上。

我以

的形式将其添加到build.sbt
"edu.stanford.nlp" % "stanford-corenlp" % "3.9.1" % "provided" classifier "models-english"

我在部署过程中将其重新添加到/lib,但未将其加载到类路径中。

是否有其他方法可以实现这一目标?我的运行命令看起来像

./bin/my-server -Dhttp.port=8080 -Dconfig.file=conf/prod.conf -J-Xmx512m -J-server &

1 个答案:

答案 0 :(得分:1)

Imports Bytescout.PDFExtractor Imports System.Diagnostics Imports System Imports System.Collections.Generic Imports System.IO Imports System.IO.Path Imports System.Linq Imports System.Text Imports System.Threading.Tasks Imports PdfSharp.Pdf Imports PdfSharp.Pdf.IO Module Module2 Public Sub Main(ByVal args As String()) Dim Dir As String = "G:\Word\Department Folders\Pre-Suit\Drafts-IL\2-IL_AttyReview\2018-09\Reviewed\unmerged" Dim name As String = "Complaint" Dim supportedfiles As New List(Of String)() For Each files As String In Directory.GetFiles(Dir, "*.pdf") Dim filename As String = GetFileName(files).ToLower() If filename Like name Then supportedfiles.Add(files) End If Next files Dim outputPdfDocument As PdfDocument = New PdfDocument() For Each files As String In supportedfiles Merge(outputPdfDocument, files) Dim Path As String = IO.Path.GetFileNameWithoutExtension(files) outputPdfDocument.Save(Dir & "\Merge\" & Path & "Complaint" & ".pdf") Next Console.ReadKey() End Sub Public Sub Merge(ByVal outputPDFDocument As PdfDocument, ByVal pdfFile As String) Dim inputPDFDocument As PdfDocument = PdfReader.Open(pdfFile, PdfDocumentOpenMode.Import) outputPDFDocument.Version = inputPDFDocument.Version For Each page As PdfPage In inputPDFDocument.Pages outputPDFDocument.AddPage(page) Next End Sub End Module 是必经之路。

如果您可以将参数传递给"provided",则可以add library back to your class path

java

(我建议您在替换旧的类路径而不是在其之前/之后添加一些内容,因此,您应该手动保留其中已有的内容。)

不过,我了解到的是,如果某些依赖项将其作为传递性编译依赖项传递给库,则无论如何您最终都可能会遇到该库。在这种情况下,您必须找出哪个任务(我建议使用sbt-depenency-graphyour-applicatiom -cp stanford-corenlp.jar:. # ; instead of : on Windows 任务)并将其排除。

dependencyBrowseGraph