天天看點

将jar檔案加到Maven的local repository中

  對于Maven項目來說,日常使用的多數第三方java庫檔案都可以從Maven的Central Repository中自動下載下傳,但是如果我們需要的jar檔案不在Central Repository中,那麼我們就需要手動将自己下載下傳的jar檔案加入到Maven的local reposotory中了,此時我們需要向Maven提供用于識别jar檔案(可能多個)的groupId, artifactId和version等資訊。

将jar檔案加到Maven的local repository中

  我并不打算講怎麼将一個下載下傳的jar庫加入到local repository中,我們将自己建立一個jar庫,比如我們有一個最簡單的HelloWorld類HelloWorld.java:

将jar檔案加到Maven的local repository中
将jar檔案加到Maven的local repository中

  我們希望将HelloWorld.java打包成jar檔案安裝在Maven的local repository中以便其它程式使用。

  編譯打包hello-world.jar後,為了符合Maven的規定,需要給hello-world.jar一個版本号,故将hello-world.jar改名為hello-world-1.0.jar,此後便可以用mvn來安裝此包到Maven的local repository中了:

  

  其中,-Dfile選項應給出需要安裝jar檔案的路徑,在Linux/Mac下,jar檔案将被安裝在以下目錄:

  現在,我們的hello-world-1.0.jar便可以被其它Maven項目所使用了,為此建立一個Maven工程:

  此時将在目前目錄下自動建立helloworld-demo子目錄,切換到helloworld-demo目錄,删除已有的App.java,并建立自己的Main.java檔案

  将以下内容加入到Main.java檔案中:

将jar檔案加到Maven的local repository中
将jar檔案加到Maven的local repository中

  接下來是最重要的一步,修改pom.xml檔案以加入對HelloWorld類的依賴:

将jar檔案加到Maven的local repository中
将jar檔案加到Maven的local repository中

  以上高亮部分為我們手動加入的,Maven會根據artifactId和version拼出所依賴jar包的名字,即artifactId-version.jar,對于我們的例子,artifactId為hello-world,version為1.0,所得到的jar檔案為hello-world-1.0.jar,這也是為什麼我們在一開始時需要将hello-world.jar的名字改為hello-world-1.0.jar的原因。

  接下來便可以編譯我們的Main.java了:

  編譯結果會放在target檔案夾下。

  到現在,我們的例子便可以運作了,在工程根目錄下(該例為hello-world-demo)輸入以下指令:

  在筆者的機器上輸出為:

将jar檔案加到Maven的local repository中
将jar檔案加到Maven的local repository中

  以上高亮部分即為我們期望的程式輸出,當然你也可以用傳統的java指令來運作,此時需要将hello-world-1.0.jar加入到classpath中,輸入:

  輸出為: