maven 使用本地jar


       最近做一個接口,需要用到本地的一個jar,直接用如下的配置在本地main測試不會有問題;

但是當另一個moudle需要引入使用了這個jar的moudle的時候(moudle A需要在pom中引入mudule B,moudle B使用了本地jar),如下的配置就會有問題:

       斷點發現這個jar中的被使用到的class not found。

<properties>
    <lib.dir>G:\central platform\lib</lib.dir>
</properties>

<dependencies>
  <dependency>  
  <groupId>com.asiainfo</groupId>
    <artifactId>OpenApiClient</artifactId>
    <version>1.0</version>
    <scope>system</scope>  
    <systemPath>${lib.dir}/OpenApiClient.jar</systemPath> 
  </dependency>
</dependencies>

      現把解決辦法記錄下來:

             1.用maven把本地jar構建到本地maven倉庫中(遠程的沒試過哦)

             2.在pom中引入該jar的maven座標,即可解決。

             步驟1的具體實施:

             第一步:將test.jar包存放在一個文件夾中,比如G:\zhdata\lib文件夾

        第二步:建一個test.jar包相關的pom.xml文件,需要在pom.xml中定義其maven座標(及其相應的依賴代碼,此處可以沒有)即可;

              同樣將pom文件存放在G:\zhdata\lib;

                      test.jar座標及依賴代碼如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>org.weka.ts</groupId>
 <artifactId>test</artifactId>
 <version>1.0</version>
 <name>test class</name>
 <description>A Test Class for test maven</description>
</project>


進一步說明:

4.0.0的說明:The "model" refers to the structure of pom.xml itself, i.e. which elements are allowed/mandatory, how to interpret them, etc.

groupId是隨意的,只要不與已存倉庫中的其他jar包的座標衝突就行了

artifactId也可以隨意

version也是可以隨意的

              第三步:mvn install:install-file  -Dfile=test.jar -DgroupId=org.weka.ts  -DartifactId=test  -Dversion=1.0  -Dpackaging=jar

                            說明:

                             在windows 運行下輸入cmd,然後輸入 g: 進入g盤目錄,然後輸入 cd zhdata\lib 進入 test.jar所在的目錄;

                             輸入上述命令,成功後可在本地倉庫查看即可發現已經配置在maven中。

參考資料:全程參考 http://blog.csdn.net/xyls12345/article/details/24977561

                   modelVersion的意義參考 http://stackoverflow.com/questions/22218497/maven-modelmodelversion-version-control


感謝上述網友的分享!



------------------------------

------------------------------

http://www.cnblogs.com/candle806/p/3949655.html


在使用maven進行jar包管理時,通過我們都是通過maven去下載一些jar包,但有些jar在maven上沒有,所以就就可能在本地直接手動加入一些需要用到的外部jar包。但如果我們用maven package打包就會發現,本地的那些jar是不能被maven識別的,所以就需要解決Maven關於本地jar包的打包處理的問題。

 

  還好maven中有提供這樣的配置,在pom文件中通過配置附加指定本地jar的路徑即可完成maven打包功能。

  

複製代碼
<build>
      
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <extdirs>project-demo\lib</extdirs>
                    </compilerArguments>
                </configuration>
            </plugin>
         </plugins>       
    
</build>
複製代碼

 

  然後通過 

  mvn clean:clean
  mvn -Dmaven.test.skip=true package 

  完成打包即可!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章