2012-07-05 21 views
10

Così il fondo rapido è che io sono la creazione di un programma Java, che utilizza molti importazioni diverseCome importare org.apache Java dipendenze w/o 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; 

So che Netbeans non è trovare questi file perché non li ho sul mio computer. Ma esiste un modo per consentire a Netbeans di connettersi automaticamente con org.apache e recuperare questi file? O devo solo andare a scaricarli. Qualcuno ha raccomandato di usare Maven, ma non sono sicuro se questa sia la soluzione giusta o come procedere in merito?

Grazie

+5

Scaricare i JAR Hadoop e inserirli nella directory/lib del progetto. Puoi ottenerli qui: http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html. Perché mai faresti una cosa così semplice così complicata? – duffymo

+1

Il 50% di questa domanda era su come farlo questa volta, ma l'altro 50% della domanda era per come farlo nel modo "giusto". –

+0

Quindi, come sta facendo qualcosa di "sbagliato"? – duffymo

risposta

7

A meno che non si utilizzi una struttura Maven (vedere qui getting started with Maven), sarà necessario scaricare manualmente tutti i barattoli.

Se si utilizza solo Hadoop (come nel proprio esempio), questo potrebbe non sembrare un grosso problema, ma quando si lavora con grandi progetti è più facile dichiarare le proprie dipendenze in un file pom.xml. È molto più facile che scaricare X diversi jar, e puoi facilmente passare a una versione più recente di una libreria, piuttosto che dover eliminare e scaricare un altro.

Ho visto che qualcuno ha chiesto in un commento perché la gente come Maven così tanto. Beh, ad essere onesti, personalmente lo trovo facile da usare e molto utile. Inoltre, un progetto Maven può essere facilmente importato in IntelliJ, Eclipse o Netbeans, mentre la creazione ad esempio di un progetto IntelliJ può causare difficoltà nell'importazione in Eclipse o NetBeans.

Per iniziare a utilizzare Maven con Netbeans, è possibile accedere a: Nuovo progetto, Categorie: Progetti Maven: {Opzione migliore}. Quindi, nei file di progetto, apri pom.xml. Ecco dove vengono aggiunte le dipendenze per il tuo progetto. Se non sei sicuro di cosa inserire prova a cercare il tuo nome jar + "Maven" su Internet. Il plug-in per Netbeans è in grado di connettersi al repository maven e completare automaticamente molti campi.

esempio da: 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

Per un momento mi sono chiesto perché stavi mantenendo le tue dipendenze in un file porn.xml – gobernador

1

Non sei un utente NetBeans, ma sono sicuro che anche in NetBeans, si dispone di un plugin Maven. "Mavenize" il tuo progetto, e quando eseguirai l'installazione di mvn clean, otterrai questi jar nel repository di maven locale.
Con Eclipse uso il plugin m2Eclipse e funziona davvero bene per me.
Questo ovviamente dipende dal fatto che questi vasi possono essere trovati in repository maven sulla rete, come ad esempio maven central repository.

+1

Non capisco perché alla gente piaccia Maven così tanto. – duffymo

+2

Non capisco perché la gente non ami tanto Maven. :-) –

+0

Persone? Non solo io. È la complessità inutile per un beneficio insufficiente che mi uccide. Più i mandati sulla struttura delle directory che, per quanto ne so, non possono essere modificati. – duffymo

2

È necessario scaricarli. Il nome org.apache.hadoop è un nome di pacchetto e usiamo solo il nome del sito come convenzione. See this tutorial on packages per ulteriori informazioni. In sostanza un pacchetto è una cartella sul tuo computer, spesso nella directory Java\jre\lib\ext\.

3

Sarà necessario scaricare autonomamente i file jar. A meno che non inizi a utilizzare Maven o uno strumento di gestione delle dipendenze simile.

0

Ho finalmente trovato il mio modo preferito per creare un nuovo progetto Hadoop e importare le dipendenze usando Maven.

Utilizzo di NetBeans Creazione di un nuovo progetto Maven.

Quindi sotto i file di progetto, apro pom.xml.

ho finalmente aggiungere all'interno della

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

Dopo aver costruito con dipendenze Ora sono pronto al codice.

Problemi correlati