Domanda

Ho un'applicazione web di base (progetto dinamico web in Eclipse) con un progetto EAR associato. Sto cercando di fare in modo che il mio codice di prova JUnit resta al di fuori del file EAR distribuzione.

Nel mio progetto web ho una cartella di origine chiamata "src" e uno chiamato "test". Ho bisogno di mantenere i file .class dal "test" OUT cartella di origine del EAR quando esporto usando eclisse.

So che questo è banale usando formica, ma sembra impossibile utilizzando Eclipse .. giusto progetto clic ed esportare il file ear .. le classi di test sono sempre incluse.

Se io modificare manualmente il file .setting / org.eclipse.wst.common.component.xml per rimuovere il tag associato alla cartella di prova funziona, ma se alcuni altri sviluppatori cambiano qualsiasi questione relativa al percorso di generazione, si ottiene rigenerata ...

Mi sto perdendo qualcosa di ovvio .. Googled come un matto senza alcun risultato .. controllato documenti di Eclipse e sono in perdita ..

È stato utile?

Soluzione

Non sembra essere direttamente possibile, che è bizzarro. Ecco un paio di soluzioni alternative si potrebbe provare.

Si noti che avrei spostare i file java dal progetto web a un progetto Java (questo è probabilmente una buona pratica da seguire in ogni caso). In entrambi i casi creare un altro progetto Java "test" e spostare le fonti di prova a tale progetto. Il vostro progetto di test dichiara il progetto Java "principale" come una dipendenza quindi ha accesso ai tipi per i test, ma non è incluso nella guerra, per cui le classi di test non verrà distribuito.

In alternativa, se si desidera mantenere le fonti in un progetto, è possibile configurare il progetto di test di utilizzare le risorse collegate. Ho postato un'altra risposta che mostra come si possono utilizzare risorse collegate per condividere percorsi di origine attraverso progetti. Con questo approccio le fonti di prova non sono ancora sul percorso di generazione per il progetto principale, quindi non saranno in bundle nel vaso, ma sono fisicamente situati nel progetto in modo controllo del codice sorgente è più semplice.

Altri suggerimenti

che sto facendo qualcosa di simile, se non con PDE, Utilizzo Eclipse 3.7. Sto schierando Eclipse / OSGi plugins / bundle, e ho due directory sorgente Java: src e test

Ho ottimizzato il contenuto di due file di progetto Eclipse per separare il codice di prova dalla costruzione.

.classpath :

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry export="false" kind="src" path="test"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry export="false" kind="lib" path="/thirdparty/junit/junit.jar"/>
    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Queste modifiche sono state motivate dalla lettura questo

Non so se questo si applica alla vostra situazione, ma ho anche dovuto modificare un build.properties file, per escludere i risultati di compilazione 'test' dal file jar prodotta.

source.optimizing.jar = src/
#This doesn't contain test/ because we don't want it in the build.

bin.includes = META-INF/,\
               optimizing.jar
#The junit.jar is also exluded               

Quando costruisco l'intero progetto, i file di prova sono completamente assenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top