在Maven工程中,我們常需要依賴各種第三方庫完成項目開發(fā),但在最終交付時,往往不希望將這些依賴本身打包到產品中,以減小發(fā)布包體積。此時,可以通過以下兩種方式實現(xiàn):
使用provided
這適用于那些編譯時需要,但運行時會由服務器或運行環(huán)境提供的庫,典型的如Servlet API、JDBC驅動等。可以像下面這樣配置:
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>version</version>
<scope>provided</scope>
</dependency>
這種方式編譯通過且可以寫代碼引用,但不會被打入最終包中。
使用true
這表示一個完全可選的依賴,默認是不參與打包的,只有手動設置了才會被包含在內。例如:
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>version</version>
<optional>true</optional>
</dependency>
兩者都可以實現(xiàn)排除依賴打包,但強調編譯必須而運行時不需要,完全是可選依賴。合理運用可以減小項目發(fā)布包體積。文章來源:http://www.zghlxwxcb.cn/news/detail-577789.html
兩者的共同點是都可以排除依賴的打包,不同在于 表示完全可選,而 表示編譯必須但運行時由外部容器提供。文章來源地址http://www.zghlxwxcb.cn/news/detail-577789.html
到了這里,關于Maven工程中排除依賴打包的兩種方式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!