【发布时间】:2014-06-16 19:12:21
【问题描述】:
我有一个遗留的war项目,依赖于一个jar项目,jar项目需要在classpath中添加几个非托管的jar进行编译。但是这些罐子不应该在战争中打包。所以我的问题是如何从 fullClasspath 中删除这些条目。以下将不起作用:
val excludeFilter = "(servlet-api.jar)|(gwt-dev.jar)|(gwt-user.jar)"
val filteredCP = cp.flatMap({ entry =>
val jar = entry.data.getName()
if (jar.matches(excludeFilter)) {
Nil
} else {
Seq(entry)
}
})
fullClasspath in Runtime = filteredCP
我很确定一定有简单的方法可以做到这一点,但到目前为止我还没有发现。
编辑:基于 Pablo 建议使用托管类路径而不是非托管类,我可以将问题改写为:如何将本地 jar 添加到托管类路径。我的罐子被放置在一个(非常)非标准布局的本地文件夹中:
lib/testng.jar
lib/gwt/2.3/gwt-user.jar
lib/jetty/servlet.jar
所以基本上我正在寻找类似的东西:
libraryDependencies += "testng" % "provided->test"
libraryDependencies += "gwt" % "2.3" % "gwt-user" % "provided->compile"
libraryDependencies += "jetty" % "servlet" % "provided->default"
允许我从我自己的本地 lib 文件夹中获取 jars。
【问题讨论】: