在項目開發中,項目用maven管理,是一個maven項目。
一般情況下jar包都可以使用pom.xml來配置管理,但也有一些時候,我們項目中使用了一個内部jar檔案,但是這個檔案我們又沒有開放到maven庫中。
我們會将檔案當到我們項目web-inf/lib中。
如果我們不對pom.xml進行特殊配置的話,maven打包是不會自動去引用和編譯lib中的jar檔案的,是以需要我們修改下pom.xml檔案。
修改maven-compiler-plugin的配置,如下:
其他配置是我的原來配置,針對lib引用這個問題,隻需要增加的是:
<code><extdirs>${project.basedir}/src/main/webapp/web-inf/lib</extdirs></code>
不過在3.1版本以後maven-compiler-plugin将compilerarguments定為過時了,建議大家按下面的方法寫。
其中表示javac平時用空格隔開的的每一個參數。
其中${project.basedir}一定要寫,不然會出現“在windows”下可以正常編譯,在linux伺服器上就“有可能”出現編譯找不到jar包的錯誤。
另外科普一下,maven的目錄約定:
pom.xml所在的目錄應為項目的根目錄,假設該目錄為${proj-dir},那麼maven有以下假設:
${proj-dir}/src/main/java —— 存放項目的.java檔案。
${proj-dir}/src/main/resources —— 存放項目資源檔案,如spring, hibernate配置檔案。
${proj-dir}/src/test/jave —— 存放所有測試.java檔案,如junit測試類。
${proj-dir}/src/test/resources —— 測試資源檔案。
${proj-dir}/target —— 項目輸出位置。
運作一條mvn clean package指令,maven會幫你清除target目錄,重建立一個空的,編譯src/main/java類至target/classes,複制src/main/resources的檔案至target/classes,編譯src/test/java至target/test-classes,複制src/test/resources的檔案至target/test-classes;然後運作所有測試;測試通過後,使用jar指令打包,存儲于target目錄。maven做的事情一點也不少,隻是都對使用者隐蔽起來了,它隻要求你遵循它的約定。
(完)