2012-07-05 64 views
10

那麼快背景我創建一個Java程序,它使用許多不同的進口如何導入org.apache了Java相關瓦特/或W/O的Maven

import org.apache.hadoop.conf.*; 
    import org.apache.hadoop.fs.Path; 
    import org.apache.hadoop.io.*; 
    import org.apache.hadoop.mapreduce.*; 
    import org.apache.hadoop.util.*; 
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; 
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 

我知道NetBeans是沒有找到這些文件,因爲我沒有在我的電腦上。但有沒有辦法讓Netbeans自動連接org.apache並檢索這些文件?或者我只需要去下載它們。有人建議使用Maven,但我不確定這是正確的解決方案還是如何去做?

感謝

+5

下載Hadoop JAR並將它們放到項目的/ lib目錄中。你可以在這裏找到它們:http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html。爲什麼你會做出如此複雜的簡單事情? – duffymo 2012-07-05 14:04:58

+1

這個問題的50%是關於如何做到這一點, 但其他50%的問題是如何做到「正確」的方式。 – 2012-07-05 14:45:37

+0

那麼如何做簡單的「錯誤」? – duffymo 2012-07-05 15:26:58

回答

7

除非您使用Maven結構(請參見getting started with Maven),否則您將不得不手動下載所有jar文件。

如果只使用Hadoop的(如你的例子),這可能似乎不是太大的交易是,但大項目時,很容易在一個pom.xml文件中聲明你的依賴。它比下載X個不同的罐子容易得多,並且您可以輕鬆移動到更新版本的庫中,而不必刪除和下載另一個。

我看到有人在評論中問道爲什麼人們非常喜歡Maven。那麼,說實話,我個人覺得它很容易使用,非常有用。此外,Maven項目可以輕鬆導入到IntelliJ,Eclipse或Netbeans中,而創建例如IntelliJ項目可能會導致難以將其導入到Eclipse或NetBeans中。

若要使用Maven使用Netbeans開始,你可以去:新建項目,類別:Maven項目:{最佳選擇}。然後在項目文件中打開pom.xml。這裏是添加項目的依賴關係。如果您不確定要插入什麼內容,請嘗試在Internet上搜索您的jar名稱+「maven」。 Netbeans插件能夠連接到Maven存儲庫並自動填充大部分字段。

樣品來自:http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.6

<project...> 
.... 
<dependencies> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-core</artifactId> 
     <version>1.0.3</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.6</version> 
    </dependency> 
</dependencies> 
... 
</project> 
+8

有一段時間我問自己爲什麼你把你的依賴關係保存在一個porn.xml文件中 – gobernador 2012-07-05 18:36:59

1

非NetBeans用戶,但我敢肯定,即使在NetBeans中,你有一個Maven插件。 「Mavenize」你的項目,當你執行mvn clean install時,你會得到這些jar到本地maven倉庫。
使用Eclipse我使用m2Eclipse插件,它對我來說非常適用。
這當然取決於這些罐子可以在網絡上的maven倉庫中找到,如maven central repository

+1

我不明白爲什麼人們喜歡Maven這麼多。 – duffymo 2012-07-05 14:05:33

+2

我不明白爲什麼人們非常不喜歡Maven。 :-) – 2012-07-05 14:12:15

+0

人?不,只是我。對我來說,沒有足夠好處的複雜性是不必要的。再加上目錄結構的任務,據我所知不能改變。 – duffymo 2012-07-05 14:32:34

2

您必須下載它們。名稱org.apache.hadoop是一個包名稱,我們僅將該網站的名稱用作約定。 See this tutorial on packages瞭解更多信息。本質上,軟件包是計算機上的文件夾,通常位於Java\jre\lib\ext\目錄中。

3

你將不得不自己下載jar文件。除非你開始使用Maven或類似的依賴管理工具。

0

我最後想通了,我的首選方法來建立一個新的Hadoop項目,並導入使用Maven的依賴關係。

使用NetBeans我創建了一個新的Maven項目。

然後在項目文件下打開pom.xml。

我最後加入的

<dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-core</artifactId> 
     <version>0.20.2</version> 
    </dependency> 

內具有依賴性的我現在已經準備好了代碼建成後。