Ho due progetti Java chiamati A e B. Entrambi sono applicazioni Web distribuite come file di guerra. Li ho creati separatamente nell'area di lavoro di Eclipse. Progetto B utilizza una classe nel progetto A denominata MusicMapper
. Ho aggiunto il progetto A per proiettare il percorso di costruzione di B in Eclipse come suggerito in this post. Così ora il progetto B può compilare senza errori e la classe MusicMapper
può essere visto in progetto B importando nel progetto B:Come condividere il codice tra due progetti?
import com.projectA.MusicMapper;
Tutto sembra andare bene, prima ho lanciato l'applicazione web di progetto B. Tuttavia, quando ho lanciato il progetto B e chiamato il codice che fa riferimento classe MusicMapper
nel progetto a, ho ottenuto il seguente errore di runtime:
java.lang.ClassNotFoundException: com.projectA.MusicMapper
Quindi questo errore sembra essere causato da classe unfound com.projectA.MusicMapper
che è importato da progetto A. Dal momento che ho già aggiunto il progetto A al progetto B, il percorso di costruzione e il progetto B compila bene senza errori, perché segnala questo errore in fase di esecuzione?
Un altro approccio che ho preso era: Ho anche provato con la seguente importazione Maven nel progetto di B pom.xml
:
<dependency>
<groupId>com.projectA</groupId>
<artifactId>projectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>system</scope>
<systemPath>/path/to/projectA.jar</systemPath>
</dependency>
dove projectA.jar
è il file jar ho esportato dal progetto di A. Ma ancora mi ha dato la stesso ClassNotFoundException
. Come posso rendere la classe nel progetto A utilizzabile dal progetto B? Sembra che nessuno dei due approcci che ho provato funzioni.
Pensi che sia una risposta per voi :) – vkg