vs怎么建java的控制台程序_像VS一样简单的打包“控制台”程序
對于我一個不了解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怎么建java的控制台程序_像VS一样简单的打包“控制台”程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java调试jdk源码_JDK源码调试
- 下一篇: java代码删除文件夹_删除文件夹的ja