eclipse maven項目如何將所有的jar包復制到lib目錄下?


1.情景展示

  我們知道,maven項目的jar包並不存在於項目當中,項目所需的jar包都保存在本地倉庫中,如果本地倉庫沒有,會從配置的中央倉庫下載,如果中央倉庫也沒有就會報錯;

  如上圖所示,我想將項目所依賴的所有jar包都放在src/main/webapp/WEB-INF/lib目錄下, 如何實現?

  這樣做的目的,是為了可以熱部署。

2.分析

  默認情況下,要想獲取項目所依賴的jar包,需要執行maven命令來實現,比如:mvn install

  執行后,target目錄下會出現該項目以及已經打好的包。

3.解決方案

   通過更改maven默認的打包目錄來實現。

   第一步:借助插件maven-war-plugin更改項目打包所需的目錄位置

<build>
    <finalName>mavenProject</finalName>
    <plugins>
        <!-- 
            更改maven默認的打包目錄
            maven默認打包目錄:project/target/project/
            更改后的目錄: project/src/main/webapp/
            更改后的改變:
            1.target目錄下不再生成項目,只生成項目對應的war包。
            2.項目所需要的jar包會拷貝到lib目錄下
        -->
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webappDirectory>${project.basedir}/src/main/webapp</webappDirectory>
                <warSourceDirectory>${project.basedir}/src/main/webapp</warSourceDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

  第二步:更改class文件的編譯位置

  outputDirectory標簽添加到build標簽體內。

<!-- 
    更改maven默認class文件編譯位置
    maven默認編譯目錄:project/target/classes/
    更改后的目錄: project/src/main/webapp/WEB-INF/classes/
 -->
<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>  

  更改前的如上圖所示,更改后,執行maven打包命令,效果圖如下:

  說明:

  通過pom.xml更新jar包依賴后,需要Alt+F5,重新編譯項目;

  如果pom.xml中添加刪除了對某個jar包的引用或者修改某個jar包的版本號,要想使lib目錄同步,需要手動將lib目錄下的jar包刪光,否則,已經刪除的jar包不會自動刪除,已經更新版本的jar包會存在多個版本。

  重新使用mvn clean install命令,才能將更新后的jar包同步到lib目錄下。

  第二步最好不要省略,因為如果不修改class的默認編譯位置的話,同樣存在着class文件無法同步的情況。

4.擴展 

  拓展一:在項目未打包前,也就是未執行mvn install命令時

  在eclipse中,這並不影響,我們正常運行項目。

  此時,並未執行mvn install命令,lib目錄下也沒有jar包。 

  前提:選中項目--》右鍵run as 或者debug as

  eclipse會自動將pom文件中配置的jar包拷貝到{tomcat/webapps}/項目/WEB-INF/lib目錄下

  所以,項目可以正常運行而不報錯。

  之所以eclipse這么智能,是因為:

  eclipse為mavenWeb項目添加了這個設置

  將項目所需要的jar包,放置到WEB-INF/lib目錄下。 

  不信自己可以測試一下。

  如何添加這項設置?

  如果按照我給你的流程創建mavenWeb項目,那這個設置肯定是有的,但是如果沒有,請按下方操作:

  第一,選中項目--》右鍵屬性--》Deployment Assembly(如果你沒有這個選項,說明你的項目不是一個真正的web項目)

  第二,右側--》Add--》Java Build Path Entries--》Next--》選中Maven Dependencies--》Finish

 

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM