日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

既使用maven编译,又使用lib下的Jar包

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 既使用maven编译,又使用lib下的Jar包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

既使用maven編譯,又使用lib下的Jar包

在項目開發中,項目用maven管理,是一個maven項目。?
一般情況下jar包都可以使用pom.xml來配置管理,但也有一些時候,我們項目中使用了一個內部jar文件,但是這個文件我們又沒有開放到maven庫中。?
我們會將文件當到我們項目WEB-INF/lib中。?
如果我們不對pom.xml進行特殊配置的話,maven打包是不會自動去引用和編譯lib中的jar文件的,所以需要我們修改下pom.xml文件。

修改maven-compiler-plugin的配置,如下:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding><compilerArguments><verbose /><bootclasspath>${env.JAVA_HOME}/jre/lib/rt.jar</bootclasspath><extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs></compilerArguments></configuration>
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

其他配置是我的原來配置,針對lib引用這個問題,只需要增加的是:?
<extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>

不過在3.1版本以后maven-compiler-plugin將compilerArguments定為過時了,建議大家按下面的方法寫。?
其中表示javac平時用空格隔開的的每一個參數。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding><compilerArgs> <arg>-verbose</arg><arg>-Xlint:unchecked</arg><arg>-Xlint:deprecation</arg><arg>-bootclasspath</arg><arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg><arg>-extdirs</arg> <arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg></compilerArgs> </configuration>
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

其中${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做的事情一點也不少,只是都對用戶隱蔽起來了,它只要求你遵循它的約定。


(完)

總結

以上是生活随笔為你收集整理的既使用maven编译,又使用lib下的Jar包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。