2009-06-17 14 views
11

Ho due moduli Maven, uno che finisce come un barattolo, e una guerra che dipende da quel barattolo.Maven - aggiungi dipendenza dalla risorsa artefatto

Voglio che il modulo jar impacchetta il suo codice sorgente insieme alle classi compilate nel contenitore, in modo che il secondo modulo possa accedervi. Ho provato a usare il plugin maven-source, ma sono confuso su come aggiungere una dipendenza all'output di quello. Sembra che la dipendenza di default vada al jar compilato, e non al jar del codice sorgente (che termina con "-source.jar") creato da maven-source-plugin.

Come si aggiunge "-source.jar" come dipendenza, pur mantenendo la dipendenza dalle origini compilate?

risposta

20

Non l'ho provato, ma penso che sia necessario creare due profili nel progetto. Uno che costruisce il vaso principale. L'altro che costruisce il vaso delle fonti. Sfortunatamente, non sono esattamente sicuro di come potresti costruire quel profilo. Non sono riuscito a trovare un buon esempio fino ad ora.

(Accoding ai commenti, in realtà non hanno bisogno di un profilo. Si può solo utilizzare il plug-fonti che distribuire le fonti e renderli disponibili attraverso il classificatore fonti)

In teoria, si' d usa il 2o profilo per collegare le fonti al progetto. Questo crea una seconda voce nel repository per i sorgenti che usano quel classificatore. Una volta installati/distribuiti i sorgenti nel repository, dovresti essere in grado di includere i sorgenti come dipendenza utilizzando il tag classificatore sulla dipendenza per specificare direttamente le fonti.

questo modo ci sono qualcosa di simile nel tuo POM webapp:

<dependencies> 
    <dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myJar</artifactId> 
    <version>4.0</version> 
    <type>jar</type> 
    </dependency> 
    <dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myJar</artifactId> 
    <version>4.0</version> 
    <type>jar</type> 
    <classifier>sources</classifier> 
    </dependency> 
</dependencies> 
+2

non ho nemmeno bisogno di profili, Maven-source-plugin ha fatto il classificatore "fonti" automaticamente disponibili. Appena aggiunto fonti alla dipendenza :) –

+3

Mi dispiace - Intendevo , non ! –

+1

Abbiamo avuto la stessa configurazione per il nostro progetto mGWT. Abbiamo inserito le interfacce AutoBean in un modulo maven "condiviso", utilizzato dai servizi sul server (servizi REST utilizzando CXF) e sul client mGWT. Il problema è che il maven gwt: obiettivo di compilazione ha bisogno delle fonti e delle versioni compilate da completare. La configurazione sopra ha funzionato bene anche per noi. – peron

1

Hai provato ad aggiungere la directory src come directory di risorse nella sezione di compilazione? Quello dovrebbe copiare la fonte nel vaso sulla costruzione.

Problemi correlati