2015-09-28 27 views
1

我有依賴於2 jar文件的應用程序:如何添加在pom.xml中的jar文件相關

  • OperatorInterface.jar
  • Operator.jar

我要建立我的項目使用Maven結構。我已經按照Maven站點教程創建結構如下所示:

mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=source.app -DartifactId=project 

我已經把我的源文件FileProcess.java在E:\項目的\ src \主\ java的\源\應用。

FileProcess對2個外部.jar文件有依賴關係,但我不知道如何在pom.xml中定義這個依賴關係。

這是迄今爲止pom.xml中的內容:

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>source.app</groupId> 
    <artifactId>my-app</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>my-app</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

誰能幫助我?

+0

http://stackoverflow.com/questions/2229757/maven-add-a-dependency-to-a-jar-by-relative-path – Vovka

+0

那些罐子這是黨嗎?還是你自己? – Arkadiy

+0

@ Arkadiy他們是我自己的 – soha

回答

1

避免直接將它們添加到您的pom.xml文件。當你使用這個過程添加.jars時,它們會自動反映在你的pom.xml 步驟是 - 1.在你的eclipse的文件瀏覽器中右鍵單擊你的項目。 2.轉到構建路徑選項。 3.選擇configure build path 4.在出現的窗口中選擇Libraries選項卡。 5.在外部添加您的.jar文件。 6.單擊確定並返回到您的項目界面

通過按Alt+F5更新您的maven項目並重新啓動eclipse。你的問題應該解決。

+0

我沒有使用任何IDE。我從命令行運行我的程序 – soha

+1

每次運行「右鍵單擊 - Maven - 更新項目」或更改您的POM或添加另一個Maven項目時,Eclipse Build Path中的claspath會被M2E覆蓋。 – Arkadiy

+0

即使使用了Eclipse,這也是您可能給出的最糟糕的建議。如果您使用Maven,那麼Maven將確定項目依賴關係 - 期間。如果您在IDE中執行手動覆蓋,那麼您的IDE構建工作並且Maven構建失敗,再加上提到的項目同步問題,其中pom將撤消您的手動更改。 – Gimby

1

您需要在maven本地存儲庫中安裝jar包的第一件事。你可以在這裏按照官方教程:

https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

期間,您將不得不選擇自己的artifactId,groupId和版本的安裝。你可以選擇你想要的任何價值,但要記住它們,因爲你需要那些包括你的罐子在pom中。

在此之後,你可以將它們包含在你的pom.xml添加標籤dependencies下這些行對每個庫包括:

<dependency> 
    <groupId>your_group_id</groupId> 
    <artifactId>your_artifact_id</artifactId> 
    <version>your_version</version> 
</dependency> 
2

在這種情況下,當有問題的JAR文件是你自己的代碼,而不是第三第四方面,最好的方法是「構建」它們的項目。在完成之後,在這些項目上運行mvn install將把它們放置在Maven本地存儲庫中,這樣它們將可用於聲明它們爲依賴項的其他本地Maven項目。

1

我會採取以下路線,因爲這是爲企業使用。這是一種非常難以實現的便攜式方式,可以爲將來的Maven使用提供幫助,因爲這是打算完成的。

1)使Maven項目(因爲這樣你可以很容易的版本,管得太使用Maven的依賴jar)

2)使用本地存儲庫管理器和使用Maven發佈管理通過部署自己的項目,要麼mvn:release插件,或者使用像Hudson這樣的構建服務器,通過一個簡單的按鈕按鈕來自動執行發佈過程,我可以強烈推薦設置。

https://maven.apache.org/repository-management.html

http://maven.apache.org/maven-release/maven-release-plugin/

3)MVN:釋放的依賴罐子到本地存儲庫管理,使他們將可用於其他Maven項目

4)你究竟做了,當你有一個本地倉庫,您可以在其中部署自己的快照並釋放構件,然後,您的Maven構建可以找到您自己的Maven模塊,並將它們包含在應用程序依賴項中 - 如果您不忘記在項目的pom中配置存儲庫當然。而你的構建服務器,如果你有一個也可以找到它們。


易/懶惰的路線是建議在您的本地文件夾的.m2手動安裝的罐子,其中Maven的緩存,它依賴下載,但它絕對不是一個便攜式解決方案,將經得起時間的考驗。當其他人需要在這個項目上工作,直到他們也在本地安裝罐子時,它將無法工作。或者,如果只有你自己,你需要在每次你在另一臺計算機/另一個用戶上籤出項目時重做它。此外,每次在項目簽出時,每次更改瓶子時都需要更新罐子。您可能需要執行特定的設置步驟才能在IDE中工作,如果您不可避免地選擇開始使用它。

但是,如果您有時間壓力問題,那麼我一定會繼續做下去,並將其作爲臨時解決方案來解決問題。

相關問題