scala – SBT:从Jar排除课程
我将旧版jar项目转换为SBT,由于奇怪的原因并不容易解决,该项目内附有“
javax / servlet / Servlet.class”.所以我需要以某种方式将该类从package-bin生成的jar文件中排除.我该如何做到这一点?最好我想排除使用通配符(即javax.*).
SBT组件插件看起来像具有这样做的功能,但是我担心依靠sbt装配意味着我的jar项目将不会在一个muliti模块项目中工作(即如果我将它包含在一个war文件中的依赖项那么战争项目需要被告知要在依赖的jar项目上运行程序,而不是打包bin,但是我可能在这里被误认为). 解决方法
每个任务声明其使用的其他任务和设置.您可以使用inspect来确定这些输入,如
Inspecting Settings和最近的教程式
blog post by John Cheng中所述.
在这种情况下,packageBin使用的相关任务就是映射.映射任务收集要包含在jar中的文件,并将它们映射到jar中的路径.某些背景在Mapping Files中进行了说明,但是结果是映射产生Seq [(File,String)]类型的值.这里,File是提供内容的输入文件,String是jar中的路径. 因此,要修改packageBin任务的映射,请从不希望包含的默认映射中过滤出路径: mappings in (Compile,packageBin) ~= { (ms: Seq[(File,String)]) => ms filter { case (file,toPath) => toPath != "javax/servlet/Servlet.class" } } (Compile,packageBin)中的映射选择主包任务的映射(而不是测试源或packageSrc任务). x?= f表示“将x设置为将x应用于前一个值的结果”. (详见More About Settings) 该过滤器将删除路径对应于Servlet类的所有对. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- [翻译]如何使用webservice作为数据源去生成Microsoft Repor
- 在rials 中使用bootstrap 的modal对话框 实现一个弹窗显示多
- 事件 – 从angularjs指令触发点击事件
- AngularJS:ng-repeat track by $index在嵌套循环中
- Docker-compose设置中已编译组件的Docker开发工作流程
- Bootstrap每天必学之媒体对象
- angularjs – 参数不是aNaNunction,未定义
- 通过webservice提交xml数据以及soap协议的使用
- 如何使用scala slick 3发送纯SQL查询(并检索结果)
- 人人都需要知道的@angular-cli