PDA

View Full Version : [netbeans] condividere classi fra progetti


MEMon
20-06-2010, 19:11
Ciao a tutti, sono poco pratico con netbeans, devo realizzare una applicazione client - server, dove alcuni classi sono le stesse.
Ho due progetti ovviamente uno per il client e uno per il server, è possibile fare in modo di condividere alcuni classi da un progetto all'altro?

Un po' come in visual studio si aggiunge un progetto ad una solution e si mettono delle dipendenze con altri progetti...

Spero che l'unico modo non sia creare una libreria delle classi interessate e linkarla in entrambi i progetti.

FabryHw
20-06-2010, 20:59
Un po' come in visual studio si aggiunge un progetto ad una solution e si mettono delle dipendenze con altri progetti...

Spero che l'unico modo non sia creare una libreria delle classi interessate e linkarla in entrambi i progetti.

Alla voce library del progetto tu puoi sia aggiungere Library (ossia oggetti definiti nella libreria di Netbeans) che singoli Jar, che altri progetti esistenti.

Nell'ultimo caso se non ricordo male lui non fa altro che compilare il progetto ed includere il Jar ottenuto nel clashpath del secondo progetto.
Ogni volta che fai un clean and build mi pare (ma devo verificare meglio) che lui ricompili anche i progetti da cui il tuo progetto dipende.

Non mi pare (tranne quando lo usi per progetti basati su Maven e non Ant) che faccia la dipendenza transitiva in automatico però.
Ossia se il progetto A dipende dalla libreria X ed Y, ed il tuo progetto B dipende da A, allora devi mettere a mano anche le librerie X e Y se già non c'erano, perché lui aggiunge solo il jar di A.

MEMon
20-06-2010, 21:00
Si però in questo modo mi include tutto non solo alcuni classi.

FabryHw
20-06-2010, 21:08
Si però in questo modo mi include tutto non solo alcuni classi.

Si certamente.

Però puoi sempre separare le classi comuni mettendole in un altro progetto di tipo libreria.
Il che non significa che deve essere nelle librerie di Netbeans, ma solo che non contiene una classe da avviare (con il metodo main).

E poi includere tale progetto alla voce libreria degli altri 2.

MEMon
20-06-2010, 21:10
Si infatti ora sto procedendo in questo modo, ho creato un progetto libreria dove metto le classi che condivido, e lo inserisco come libreria negli altri due progetti. Alla fine è abbastanza comodo anche così.

Grazie.

FabryHw
20-06-2010, 21:20
Si infatti ora sto procedendo in questo modo, ho creato un progetto libreria dove metto le classi che condivido, e lo inserisco come libreria negli altri due progetti. Alla fine è abbastanza comodo anche così.

Grazie.

Poi se ti studi qualcosa su Maven e passi ad usare il nuovo supporto Maven degli ultimi Netbeans, puoi fare cose molto più sofisticate come:


Scaricamento delle librerie necessarie da internet in automatico.
Basta che dichiari che il tuo progetto usa certe librerie che esse vengono cercate in internet e scaricate (se Maven è configurato giusto e se tali librerie sono in un repository Maven) senza che tu lo debba fare a mano o le debba aggiungere alle librerie di NetBeans
Gestione della dipendenza transitiva in modo automatico.
Se il tuo progetto dipende da A ed A dipende da B, automaticamente Maven ti procura anche B senza che tu glielo dica esplicitamente.
Molto altro ancora.


Cmq qui non ti posso aiutare perché io Maven lo sto apprendendo ora e per il 99% dei progetti uso ancora Netbeans in modalità classica (basata su Ant)

MEMon
20-06-2010, 21:22
Ah buono a sapersi! Appena ho un po' di tempo magari ci guardo sembra interessante.

Grazie mille.