2012-02-25 26 views
16

Questa sembra una domanda stupida, ma sono dipendente dai wizard di Netbeans 7.1. Non sembra esserci un'opzione per farlo.Come posso creare/utilizzare una libreria di classi con Netbeans su Maven?

La mia web-app è stata creata con Maven e voglio suddividere alcuni dei suoi pacchetti in una libreria di classi costruita e gestita in modo indipendente (in particolare, la parte JPA ma non dovrebbe importare). Poi voglio cancellare quelle pacchetti dall'applicazione web originale e quindi creare una dipendenza dall'arte che creo.

Quindi come iniziare? La procedura guidata Nuovo progetto di Netbeans non sembra avere un'opzione per "Libreria di classi Java" come per i progetti creati da ANT. La scelta più vicina che riesco a vedere è "Applicazione Java". È quello che uso e ignoro semplicemente la classe principale o c'è qualche altro percorso che non vedo?

Di solito sono abbastanza bravo a raccogliere questa roba ma le mie ricerche sul Web non stanno dando molto. Molte grazie per qualsiasi aiuto.

+0

Rilevante e purtroppo chiuso bug: https://netbeans.org/bugzilla/show_bug.cgi?id=235638 – lpd

risposta

16

È possibile utilizzare la procedura guidata per "Maven" -> "Applicazione Java (una semplice applicazione Java SE con Maven)", per quanto riguarda Maven non c'è differenza tra una libreria e un'applicazione. Credo che netbeans creerà un campione App.java che puoi semplicemente cancellare.

Per il vostro caso, sarebbe opportuno creare anche un progetto padre per la libreria e l'applicazione web. Costruire il genitore dovrebbe quindi anche costruire sia la libreria che l'applicazione web. Permette anche di usare "build with dependencies" sull'applicazione web e far ricostruire la libreria prima.

Per creare un progetto principale è possibile utilizzare la voce "Progetto POM". La struttura di directory si presenta idealmente come questo:

- pom.xml (for parent project) 
- library (folder) 
    - pom.xml (for library module) 
- webapp (folder) 
    - pom.xml (for webapp module) 

Il progetto genitore dovrebbe quindi contenere module elementi che contiene il percorso relativo dei vostri altri progetti:

<modules> 
    <module>library</module> 
    <module>webapp</module> 
</modules> 

L'applicazione biblioteca e riferimento Web il genitore come questo, la groupId e la versione sono stabilizzati allo essere lo stesso genitore:

<modelVersion>4.0.0</modelVersion> 
<parent> 
    <groupId>myGroupId</groupId> 
    <artifactId>parentArtifactId</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>../pom.xml</relativePath> 
</parent> 
<artifactId>libraryArtifactId</artifactId> 
+0

OK credo di aver capito - quando torno a casa voglio provare a giocare con questo per vedere se riesco a farlo funzionare – AlanObject

+0

Funziona come un incantesimo, grazie. – toniedzwiedz

3

si può iniziare con Maven> POM del progetto. Che è adatto per le librerie di classi.

Inoltre puoi rendere il tuo progetto Maven "modulare". È possibile trovare un buon tutorial http://sonatype.com/books/mvnex-book/reference/index.html nei Capitoli 8 e 9.

+0

Grazie per il riferimento a http://sonatype.com/books/mvnex-book/reference/index.html, eccellente! –

1

Quanto segue funziona perfettamente per le librerie di classi in NetBeans8.1.

È necessario aggiornare le versioni principali dei plug-in nel file Maven (e si desidera rimuovere JUnit se non lo si utilizza, vedere in basso).

NON usare New Project -> Maven -> Java Application, che non si integra con il sistema di menu Maven Dipendenza in NetBeans-8.1.

procedere come segue:

  • Step1: Creare un New Project -> Maven -> Project from Archtype poi nel filtro di ricerca dell'archetipo scegliere maven-archetype-quickstart.

  • Fase 2: Fare clic su Avanti e quindi immettere il nome del progetto/modulo (MyLib o MyApi) allora Fine.

  • Fase 3: Subito (prima si dimentica) sotto Project Settings > Sources cambiamento del/formato binario Fonte 1,5-1,8 (o altro).

  • Step4: Immediatamente (prima di dimenticare) sotto Project Settings > Licence Headers scegliere una licenza.

  • Fase 5: Creare nuovi (o copiare dal vecchio progetto) file di classe o di interfaccia Java ecc sotto pacchetti sorgente nel browser del progetto.

  • Passaggio 6: (facoltativo) eliminare public class App se non si desidera eseguire un semplice modulo autonomo/classe di test.

  • Step7: (Consigliatissimo): aggiornare i principali plug-in Maven alle ultime versioni modificando i numeri di versione nel pom.xml! Il posto migliore per trovare le versioni più recenti è quello di ispezionare le cartelle sotto il repository dei plugin principale: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/

Sotto qualsiasi altro progetto NetBeans Maven a base del nuovo progetto "a monte" biblioteca o API verrà offerto tramite Dependendies -> Add Dependency .. (Open Projects subtab). Sarà inoltre offerto tramite il sistema di gestione repository quando si esegue una ricerca per la libreria Maven via Add as Dependency.

Se si desidera aggiungere comuni librerie/condivise, basta aggiungerli tramite il vostro MyLib o modulo MyApi utilizzando la funzione di Maven Dipendenze; essi si propagheranno a qualsiasi modulo "a valle" che aggiunge il vostro MyLib o modulo MyApi come una dipendenza.

Opzionale: Inoltre, il pom.xml per impostazione predefinita includono JUnit:

<dependencies> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

sufficiente eliminarlo se non lo vogliono.

+0

PS: Hai scritto "Questa sembra una domanda stupida". Si dice spesso che non esiste una domanda stupida; In effetti penso che ci siano domande stupide, ma la tua non è una di queste. +1 per chiedere, mi ha aiutato. –

+0

Beh, a me sembrava che mi piacesse in quel momento.In questi giorni su SO ci sono troppi cecchini che sono molto orgogliosi delle domande di voto e ho pensato che questo potesse essere un obiettivo. Ma grazie per la risposta. – AlanObject

+1

@AlanObject Visualizza le nuove modifiche che consigliano l'aggiornamento delle versioni dei plug-in Maven in modo che corrispondano alle ultime in https://repo.maven.apache.org/maven2/org/apache/maven/plugins/ –

2

Ho trovato un modo più veloce di aggiornare le versioni dei plugin in pom.xml utilizzando NetBeans.

  1. Individuare i plugin -> Plugin -> tag versione nella pom.xml
  2. doppio clic sul numero di versione in modo che diventi evidenziato
  3. Premere CTRL + Spazio per attivare o disattivare il completamento automatico
  4. Il menù a comparsa consente selezioni le versioni disponibili. Screenshot