scala – 如何配置build.sbt以便xsbt-web-plugin创建war文件而不
我使用
scala 2.10.1与sbt将我的webapp打包为war文件.
为了有效的rsync增量,我想将war打包为.war文件,但没有zip压缩.我只需要知道如何为此配置我的构建. 更新: 为了清楚起见,这就是我所要求的: 我需要一个执行此操作的任务“packnozip”: 1)运行“包” 2)运行shell命令: $mkdir ./Whatever $pushd ./Whatever $jar xvf ../Whatever.war $popd $mv ./Whatever.war ./Whatever.war.orig $jar cvM0f ./Whatever.war -C ./Whatever . 所以我要说的是我想在sbt控制台中输入“packnozip”并让它做#1然后#2. 现在我只是手动做#2,如果它可以自动化,这似乎很傻. 解决方法
如果您在目录中解压缩了war文件,则可以:
zip -r -0 project.war project/ 这应该是零压缩.如果您没有看到这些选项,这是我的设置: [node@hip1 dev]$zip -v Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. This is Zip 3.0 (July 5th 2008),by Info-ZIP. 在战争结束后,你可以执行我认为的运行任务. 更新1 我相信这是满足您需求的最佳方式: http://www.scala-sbt.org/release/docs/Detailed-Topics/Process val exitcode = "zip -r -0 project.war project/"! 但是,如果您需要在特定目录中工作(请参阅下面的更新2): 修改此操作以在目录中执行,但将.war放在目录上. path(2nd)参数应包含目录,以便在其中执行zip: Process("zip" :: "-r" :: "-0" :: "../project.war" :: "." :: Nil,"/path/to/project/") ! 这是关于ProcessBuilder的另一个SO问题,它也可能有所帮助: How does the “scala.sys.process” from Scala 2.9 work? (注意:您不需要导入scala.sys.process._) 更新2 对于未来的读者,请注意,压缩项目目录本身是行不通的,需要使用pushd在目录内执行war的zip,将结果战争放在目录之外,如OP中所述低于这个答案.正如Orange80所说: pushd ./project && zip -r -0 ../project.war ./ && popd 更新3 看看这个,它可能完全符合你的需要,使用0表示没有压缩的选项: https://github.com/sbt/sbt-onejar 一个插件,可以让你创建一个单独的可执行jar,可以使用选项(例如像“jar 0f blah.jar blah /”这样的命令中的“0”),我想你在下面的评论中提到创建没有压缩的jar文件. 对于使用我在SO上发现了这个: 而且,如果它需要修改,它也是一个非常合理的插件示例,如果你把它放在家里?/ .sbt / plugins它将是全局的,并且可以在你的构建中以时尚的方式使用在SO回答上面.我希望至少有一点帮助/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- CXF调用WebService通用类
- Angular 常用指令
- Bootstrap Modal中的jQuery验证不起作用
- bootstrap jquery underscore backbone 新浪微博 springmvc
- twitter-bootstrap – 如何从外部链接打开选项卡?
- sass – 如何在Bootstrap中引用$container-max-widths
- BootStrap Validator对于隐藏域验证和程序赋值即时验证的问
- angular – 类型’ElementRef’不是通用的
- Qt调用WebService 2
- [AngularJS面面观] 7. scope继承与digest循环 - scope树结构