多表格合并一起
2269
2022-05-30
1 - 問題描述
1.1 背景說明
項目中需要對 Java + Scala 編寫的 Maven 項目進行編譯打包,由于依賴了部分外部 jar 包,也就是部分 jar 包沒有在 pom.xml 中指定,導致編譯失敗。
1.2 存在的問題
網絡上能比較常見的打包 Scals 項目的方法,大多是引入了?org.scala-tools.maven-scala-plugin?插件(https://mvnrepository.com/artifact/org.scala-tools/maven-scala-plugin),其配置方式如下:
該插件從2011年起就沒有更新過,官網地址也已失效,無法找到有效的支持文檔。
2 - 問題解決
2.1 方法一:通過scope=system引入外部依賴
Maven 支持在 dependency 中引入系統依賴,其中?scope = system?與?scope = provided?的依賴范圍一致:只在編譯和測試范圍內有效,運行時范圍內無效。具體配置示例如下:
將所有的外部 jar 包都通過這種方式引入,即可正常編譯。但由于外部依賴包通常都會比較多,這種方式維護成本太高,所以不予考慮。
2.2 方法二:通過新插件指定外部依賴
經過搜索,找到了一款新插件:https://mvnrepository.com/artifact/net.alchim31.maven/scala-maven-plugin,pom.xml 中這樣配置:
通過 -extdirs 參數,指定外部依賴的 jar 包。
其他參數的查看:在終端窗口中,通過命令 mvn scala:help 查看主要配置項參數,例如:
更詳細的使用說明,請參考:http://davidb.github.io/scala-maven-plugin/example_java.html
編譯、打包用法:
(1) 直接在 IDEA 的 Maven -> Project -> Lifecucle -> compile | package 進行編譯或打包;
(2) 在終端窗口,通過如下命令進行編譯打包:
mvn?clean?scala:compile?compile?package
說明:在 compile 前加 scala:compile,這是該插件提供的選項,表示:先編譯 Scala,再編譯 Java,最后打包。
Java Scala Maven
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。