像VS一样简单的打包“控制台”程序
来源:互联网 发布:国际阿里云注册 编辑:程序博客网 时间:2024/05/29 20:05
对于我一个不了解JAVA,没有相关生态圈的C#er, 自己要研究Scala真是困难重重,尤其在项目构建上真是感觉半瓶子醋难以入门。
一个VS控制台程序,build之后甚至不需要了解 ms build就能简单的提取一个debug/release文件夹,放到服务器上跑一下。在做简单的测试程序时这是常用手段。
轮到Scala了,发现JAVA玩的那一套思路完全不同,Classpath到底是怎么回事我不懂,配置文件到底要怎么弄不知道。难道不是放在同一个文件夹下就行么?...试了各种手段,倒是能运行,但操作过程繁琐。
sbt自带的package指令,默认只会把src中源代码打包,dependencies jar全然不顾。当然肯定能配置但我不会。
另外build.sbt里写上 exportJars := true 会导出所有依赖包,实在没办法了倒是可以一个个加进去。
mappings in (Compile, packageBin) += { (baseDirectory.value / "example.txt") -> "out/example.txt"}
以上代码能控制文件输出,以后可能有用
最终选择了一个插件:sbt-pack。 Stackoverflow上提到的还是蛮频繁的,类似的还有sbt-assembly,但前者是把所有jar放到一个lib下,在Windows平台还能生成bat文件方便执行,而后者则是打到一个"Fat Jar"中(又学了个词)...
https://github.com/xerial/sbt-pack
github官方地址
在plugin.sbt中增加
addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.7.9")
因为我的sbt是 0.13.x
在根目录运行sbt pack 即可以看到结果。但过程中曾经多次提示没有pack指令,难道是我忘了重启cmd?经测试发现必须在build.sbt中加上
packAutoSettings
不明所以,入门之后再研究吧
遇到一个错误,少打了一个包,发现那个包写成如下形式了:
libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.4.2" % "provided"
原来provided代表这个jar会由runtime提供...
入个门太难了
- 像VS一样简单的打包“控制台”程序
- 像编写windows程序一样编写控制台程序
- 简单的控制台程序
- 让你的Emacs像VS一样方便
- 如何让Eclipse的智能提示像VS一样霸气
- 像mysql一样,控制台访问oracle
- VS编译的控制台程序发布问题
- VS 控制台程序运行一闪而过的解决办法
- 蛋疼的让C#控制台程序(Console)像窗体(Winform)一样(关闭,托盘图标,事件响应,手动退出等)
- 蛋疼的让C#控制台程序(Console)像窗体(Winform)一样(关闭,托盘图标,事件响应,手动退出等)
- 像Apache Storm一样简单的分布式图计算
- 让你的程序像office一样有位小助手.
- 像个高中生一样,对程序有强烈的好奇心。
- 让你的程序像系统命令一样运行
- 像学画画一样的学程序研发
- [转]测试人员要像医生一样把要测试的程序当自己的病人一样看待一样检测!
- vs下程序的打包和部署
- 简单设置MyEclipse与VS一样的代码提示功能
- Falcon(一)——数据集管理和数据处理平台
- codeforces 777C Alyona and Spreadsheet(预处理+思维)
- 92. Reverse Linked List II
- 为什么Java中1000==1000为false而100==100为true?
- IE\firfox\chrome的差异和兼容问题
- 像VS一样简单的打包“控制台”程序
- could not resolve host: github.com 问题解决办法
- springmvc入门
- 每天一题LeetCode[第十五天]
- Command python setup.py egg_info failed with error code 1
- C#编程使用Managed Wifi API连接wifi整理(一)
- java:RandomAccessFile(随机读写文件)
- 循环控制台语句
- 打造前端MAC工作站(三)使用brew利用命令行安装软件