當前位置:首頁 » 編程軟體 » maven編譯scala

maven編譯scala

發布時間: 2024-04-25 04:25:11

⑴ scala maven sbt 哪個

SBT是Simple Build Tool的簡稱,如果讀者使用過Maven,那麼可以簡單將SBT看做是Scala世界的Maven,雖然二者各有優劣,但完成的工作基本是類似的。

雖然Maven同樣可以管理Scala項目的依賴並進行構建, 但SBT的某些特性卻讓人如此著迷,比如:

* 使用Scala作為DSL來定義build文件(one language rules them all);
* 通過觸發執行(trigger execution)特性支持持續的編譯與測試;
* 增量編譯;^[SBT的增量編譯支持因為如此優秀,已經剝離為Zinc,可被Eclipse, Maven,Gradle等使用]
* 可以混合構建java和Scala項目;
* 並行的任務執行;
* 可以重用Maven或者ivy的repository進行依賴管理;

等等這些,都是SBT得以在Scala的世界裡廣受歡迎的印記。

SBT的發展可以分為兩個階段, 即SBT_0.7.x時代以及SBT_0.10.x以後的時代。

目前來講, SBT_0.7.x已經很少使用, 大部分公司和項目都已經遷移到0.10.x以後的版本上來,最新的是0.12版本。 0.10.x之後的版本build定義採用了新的Settings系統,與最初0.7.x版本採用純Scala代碼來定義build文件大相徑庭,雖然筆者在遷移之前很抵觸(因為0.7.x中採用Scala定義build文件的做法可以體現很好的統一性),但還是升級並接納了0.10.x以後的版本,並且也逐漸意識到, 雖然新的版本初看起來很復雜,但一旦了解了其設計和實現的哲學跟思路,就會明白這種設計可以更便捷的定義build文件。而且可選的build文件方式也同樣運行採用Scala代碼來定義,即並未放棄統一性的思想。

以上是SBT的簡單介紹,如果讀者已經急於開始我們的SBT之旅,那麼讓我們先從SBT的安裝和配置開始吧!

## SBT安裝和配置

SBT的安裝和配置可以採用兩種方式,一種是所有平台都通用的安裝配置方式,另一種是跟平台相關的安裝和配置方式,下面我們分別對兩種方式進行詳細介紹。

### 所有平台通用的安裝配置方式
所有平台通用的安裝和配置方式只需要兩步:

1. 下載sbt boot launcher
- 本書採用最新的sbt0.12,其下載地址為<http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.12.0/sbt-launch.jar>;
2. 創建sbt啟動腳本(啟動腳本是平台相關的)
- 如果是linux/Unit系統,創建名稱為sbt的腳本,並賦予其執行許可權,並將其加到PATH路徑中; sbt腳本內容類似於
``java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt-launch.jar "$@"``, 可以根據情況調整合適的java進程啟動參數;
- 如果是Windows系統,則創建sbt.bat命令行腳本,同樣將其添加到PATH路徑中。 腳本內容類似於``set SCRIPT_DIR=%~dp0 \n
java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*``

以上兩步即可完成sbt的安裝和配置。

### 平台相關的安裝配置方式
筆者使用的是Mac系統,安裝sbt只需要執行``brew install sbt``即可(因為我已經安裝有homebrew這個包管理器),使用macport同樣可以很簡單的安裝sbt - ``sudo port install sbt``;

⑵ maven編譯錯誤 d lifecycle pha se or a goal

一、問題描述
Windows下,需要將jar包手動導入Maven本地倉庫,使用Power Shell運行命令:
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar

報錯:
[ERROR] Unknown lifecycle phase ".ggstar". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/

二、問題原因
Power Shell的命令和cmd的命令有不一樣,這個命令在cmd是可以實行的。
三、解決方法
1.在cmd命令行中執行
在含pom.xml文件的根路徑下打開cmd命令行,然後輸入命令
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar

然後打包成功:
[INFO] Building ipdatabase 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO][INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ ipdatabase ---[INFO] Installing E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar to E:\Tools\apache-maven-3.3.9\Repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.jar[INFO] Installing C:\Users\ADMINI~1\AppData\Local\Temp\mvninstall4727202787532518137.pom to E:\Tools\apache-maven-3.3.9\Repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.pom[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.703 s[INFO] Finished at: 2018-10-05T20:40:36+08:00[INFO] Final Memory: 8M/123M[INFO] ------------------------------------------------------------------------

2.在Power Shell下
參數需要添加單引號'',如下命令即可
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" '-DgroupId=com.ggstar' '-DartifactId=ipdatabase' '-Dversion=1.0' '-Dpackaging=jar'

還有不懂的可以關注私聊我,本人10年java開發經驗,相信可以幫助你成為一個優秀的java程序員

⑶ 運行環境jre版本和jar包編譯版本不一致導致:Unsupported major.minor version 52.0

我在本地使用 Intellij Idea 打包了一個 spark 的程序 jar 包,放到linux集群上運行,報錯信息是: Unsupported major.minor version 52.0

本機系統 -> windows10 開發工具 -> Intellij Idea 構建工具 -> maven

集群系統 -> Linux jre -> Java(TM) SE Runtime Environment (build 1.7.0_80-b15)`

根據報錯 log 可以斷定的是由於我本地編譯打包所使用的 jdk 版本和 linux 集群的 jre 版本不一致導致的。stanford parser 和 jdk 版本對應關系為:

可以推斷出是由於我打包編譯時所使用的 jdk 版本是 jdk8,而集群的 jre 是7,才導致的問題。

maven 項目會用 maven-compiler-plugin 默認的 jdk 版本來進行編譯,如果不指明版本就容易出現版本不匹配的問題,可能導致編譯不通過的問題。解決辦法:在 pom 文件中配置 maven-compiler-plugin 插件。

方式一:

方式二:

如豎首果使用 scala 編寫 spark 的程序,在編譯打包時候要注意 scala 的版本號和 jdk 版本的對應關系,同時也要考慮集群上 jre 的版本。比如我的集群上所使用的 jre 的版本號為 7,那麼本機打包編譯的 jdk 版本必須旅搜為 7 ,那麼 scala 版本必須為 2.12 版本以下。

Intellij Idea 設置「開發」運拆纖歷行時所用的 jdk 版本的幾個地方:

如果上圖中 Intellij Idea 的開發運行 jdk 版本配置錯誤,在開發運行編譯的時候會報: Error:java: 無效的源發行版: xx

⑷ spark1.3編譯出錯,求解決方法

把 pom.xml文件中的scalastyle的相關改成false
<groupId>org.scalastyle</groupId>
<artifactId>scalastyle-maven-plugin</artifactId>
<version>0.4.0</version>
<configuration>
<verbose>false</verbose>
<failOnViolation>false</failOnViolation>
<includeTestSourceDirectory>false</includeTestSourceDirectory>
<failOnWarning>false</failOnWarning>

熱點內容
新寶塔初始密碼是多少 發布:2024-11-09 04:18:52 瀏覽:444
smb協議ftp協議 發布:2024-11-09 04:07:24 瀏覽:225
sublimetext3隻編譯不顯示結果 發布:2024-11-09 04:01:37 瀏覽:963
java方法的修飾符 發布:2024-11-09 04:00:52 瀏覽:358
垂直式垃圾壓縮 發布:2024-11-09 03:56:41 瀏覽:385
科研如何編程 發布:2024-11-09 03:49:15 瀏覽:306
c語言debug怎麼用 發布:2024-11-09 03:49:13 瀏覽:526
越野車上什麼配置好 發布:2024-11-09 03:49:05 瀏覽:768
linux日誌管理 發布:2024-11-09 03:40:08 瀏覽:749
上傳512k 發布:2024-11-09 03:34:15 瀏覽:242