2010-09-17 6 views
49

OK. Sono stufo di questo problema. Questo deve avere avere una soluzione facile, ne sono sicuro !! Spero di poterlo aiutare a sbarazzartene una volta per tutte!Come escludere una cartella che genera avvisi/errori in un progetto Eclipse?

Domanda

come arriviamo Eclipse di smettere di cercare di elaborare /compilare tutti i file in una determinata directory del progetto ? L'obiettivo non presenta errori/avvisi a esistenti nella vista dei problemi se si riferiscono a qualcosa in questa cartella o nelle sue sottocartelle.

Sfondo

Noi usiamo Eclipse 3.6 e il plug-in v0.10.2.20100623 m2eclipse gestisce i nostri autobuild. Per ragioni indipendenti dalla mia volontà, abbiamo l'intera distribuzione di BlazeDS nella nostra directory del progetto SVN sotto src/main/resources/blazeds. In sostanza, questa directory contiene una distribuzione vaniglia di blazeds in esecuzione su Tomcat a cui vengono aggiunti tutti i nostri file di configurazione e di progetto quando vengono distribuiti sul nostro server tramite SCP.

Quindi, quando eseguiamo l'implementazione, questa versione di tomcat viene copiata sul server e il nostro progetto viene inserito all'interno. Tomcat e la nostra applicazione RIA funzionano e tutto va bene.

Il problema è che Eclipse tenta di compilare tutto sotto src/main/resources/blazeds quando si esegue AutoBuild e questo genera circa 300 errori/avvisi nella nostra visualizzazione dei problemi. Quindi, quando emerge un errore reale, si perde nel rumore.

Gli errori derivano dal codice /blazeds/tomcat/webapps/samples/testdrive-datapush e anche dalle applicazioni web di esempio testdrive-httpservice, traderdesktop. Hanno un codice sorgente dipendente che non è sul classpath e sui jar che non sono inclusi nelle librerie.

Solutions Tentativi falliti

sto cercando di spingere la soluzione adeguata: per rimuovere completamente i campioni e anche per ottenere BlazeDS fuori del nostro controllo di versione. Non succederà presto.

Ho seguito il SO answer here ma è solo una soluzione molto temporanea. Ho provato ad aggiungere esclusioni ovunque mi viene in mente e altri membri del mio team hanno fatto lo stesso. Ho rimosso src/main/resources come directory di origine (nelle preferenze> Percorso build Java> scheda Origine) ho aggiunto esclusioni per blazeds nella directory delle risorse. Ho provato ogni permutazione di blazeds e ** come in *blazeds*, **/blazeds/**, ecc

Ho anche provato comprese le librerie e file sorgente del compilatore si lamenta, ma non riuscivo a farlo bene senza troppo mangling nostro configurazione del progetto.

Sommario

questo deve essere semplice. Qual è il modo convenzionale per escludere una cartella che genera avvisi/errori in un progetto eclissi?


Update # 1: soluzione
di gedim seguito è decente ma
1) non cancella X rosse dal progetto
2) è un cambiamento tutti sulla nostra squadra ha bisogno di fare , manualmente
(vale a dire, non è in un file di proprietà di progetto, in tal modo, non viene controllato in eversione)

Spero che ci sia un modo per affrontare il problema centrale dicendo Eclipse che questa directory non contiene
elementi da compilare/validare. Un tale cambiamento verrebbe probabilmente visualizzato in uno dei file di impostazione del progetto.


Aggiornamento # 2:

L'immagine qui sotto mostra le X rosse che sto cercando di chiarire e che
Build Path > Exclude
non è un'opzione ...

Red X's won't go away

+1

Build Path> Exclude sembra essere una buona soluzione. Funziona perfettamente in Eclipse Juno per modificare Java Build Path. –

risposta

27

È possibile utilizzare Configure Contents... nel menu di Problems pannello. Qui è possibile creare una nuova configurazione e impostare l'ambito su On Working Set:. Fare clic su Select... e creare un nuovo working set che escluda le cartelle che non si desidera.

+4

Grazie per la tua risposta! Funziona meglio di quello che stavamo facendo prima, ma ha due problemi. Soprattutto, non è un cambiamento che controlla il controllo della versione. Quindi devo andare in giro dagli altri miei colleghi e farlo fare loro. In secondo luogo, cerca ancora di compilare le classi. Quindi sul lato sinistro, vedo ancora le X rosse nelle mie cartelle di progetto di livello superiore sopra la directory src/main/resource/blazeds. Oltre a questi problemi, è fantastico! I problemi non si presentano più nella visualizzazione dei problemi !! Non sapevo nulla di questa funzione di Eclipse. – gMale

+1

7 anni dopo, non riesco ancora a capire come ottenere il x rosso soppresso:/ – Ray

2

Se davvero si vuole escludere certe classi/pacchetti da autobuild si può solo fare clic destro su di essi e selezionare percorso di generazione -> Escludi

alt text

+0

Purtroppo, questo non ha funzionato.Ma grazie per la tua risposta! Ero entusiasta di provarlo. Tuttavia "Escludi" non è un'opzione qui sotto 'src/main/resources'. Ho aggiornato la mia domanda con una foto. Escludi * è un'opzione * sotto le mie cartelle di origine. Non capisco perché questa stupida cosa stia cercando di compilare !! – gMale

+0

Non c'è alcuna esclusione perché l'hai esclusa :). Puoi provare a copiare un errore che ottieni dalla cartella qui? E posso avere una visione più chiara di cosa dietro quel menu popup? – nanda

+0

esattamente, non ci sono scuse! Sto iniziando a chiedermi se questo è un errore perché non è stato un problema l'anno scorso. Tutti gli errori sono errori legittimi relativi ai vasi mancanti, ecc. Come in "Il feed non può essere risolto con un tipo". Silly Eclipse: dato che questo codice sorgente non è usato, ovviamente i barattoli non sono in giro! Posso cancellare gli errori aggiungendo tutti i tipi di cartelle lib e riferimenti alle cartelle di origine alle impostazioni del mio progetto, ma questa non è la soluzione desiderata. Confonde gli altri e complica eccessivamente le impostazioni del progetto :( – gMale

-1

Dal momento che i file nella cartella delle risorse raramente cambiare, io suggerire di inserirli in un secondo progetto (in cui è possibile impostare diverse opzioni di avviso) e accedervi tramite un percorso relativo (ad esempio ${basedir}/../special-tomcat).

+0

Grazie per il tuo suggerimento, come ho affermato: 'Sto cercando di spingere la soluzione corretta: rimuovere completamente i campioni e anche ottenere dei blazeds dal nostro controllo di versione. Per ragioni che sfuggono al mio controllo, non posso attuare la tua soluzione, ma mi piace l'idea di utilizzare altri progetti per questo tipo di scopi. – gMale

+0

Puoi usare la mia risposta per supportare il tuo argomento per cambiare questo aspetto del progetto (come "un'esportazione dall'esterno ha suggerito questa come la migliore soluzione") –

+0

Questo succede. Sto facendo irruzione nella riunione di lunedì e chiedo "Se è buono per Digulla, è abbastanza buono per noi!" :) – gMale

0

Configura il tuo progetto (Progetto/Proprietà/Percorso build/sorgente Java) per avere, invece della cartella src di livello superiore con esclusioni, solo un elenco delle cartelle che desideri compilare.

Supponendo Eclipse Helios, passo dopo passo:

  • Spegnere autobuild (Progetto/build automaticamente).
  • Inizia con esso vuoto.
  • Eliminare gli errori facendo clic con il pulsante destro del mouse su come nel collegamento (solo per essere sicuri).
  • Aggiungi cartelle di origine genuino 1 dal 1 (Progetto/Proprietà/Java Corporatura Path/Source/Aggiungi cartella)
  • fare una build esplicito (Progetto/Costruisci il progetto).

Se funziona, si dovrebbe essere in grado di riaccendere autobuild. In caso contrario, sta succedendo qualcosa di strano. Forse il progetto non sta usando lo standard Java Builder, ma qualcosa come un Ant Builder (Project/Properties/Builders).

+0

grazie per il tuo suggerimento. Sfortunatamente, non usa il generatore di java standard. Questo è un progetto Maven e per qualche strana ragione sta tentando di creare elementi che non sono cartelle di origine. – gMale

+0

Molte delle opzioni di configurazione sono solo per il generatore Java. Quindi è necessario esaminare le impostazioni di configurazione di Maven. Probabilmente questa roba qui: – soru

+0

http://maven.apache.org/plugins/maven-eclipse-plugin/examples/specifying-source-path-inclusions-and-exclusions.html – soru

5

C'è una richiesta di funzione Eclipse per ignoring warnings from specified source folders. Sono state pubblicate diverse patch nel thread di commenti che forniscono le implementazioni della funzionalità. Sembra che una patch finale si avvicini alla fase di revisione per l'inclusione in una prossima versione.

Aggiornamento 6/19/2012: Eclipse Juno 4.2M6 supporta l'ignoranza dei problemi per una particolare cartella di origine. La funzione è disponibile nella finestra di dialogo Percorso build Java. Vedi lo release note.

+1

Mi sembra che tu possa solo escludere 'source 'cartelle da errori/avvisi. Ciò che sembra essere più mancante/utile sarebbe quello di essere in grado di ignorare gli avvertimenti nelle cartelle 'target', in quanto contengono codice generato in cui non è possibile comunque correggere gli avvertimenti (ho ricevuto diversi avvertimenti in alcuni progetti in il momento). –

52

Ho riscontrato un problema simile e l'ho risolto spostando la cartella nella cartella del mio progetto. Allora sono andato a:

  1. Progetto> Proprietà> risorse> Filtri risorse> Aggiungi ...
  2. Impostare Filter type = Escludi tutto.
  3. Set Si applica a = Cartelle.
  4. Set file e cartelle Attributi = {nome, corrisponde, < your_folder_name>}
+4

Perfetto! Questa è la soluzione migliore e ha risolto il mio problema! – Corbella

+3

Questa dovrebbe essere la risposta accettata. L'altro approccio non funziona per le sottocartelle all'interno dei progetti. –

+0

Sigh ... Ho un problema simile. Il mio progetto ha cartelle (virtuali) con sorgenti, ad esempio le fonti si trovano altrove. Devo escludere alcune di queste cartelle dalla build. Ho usato il filtro delle risorse ** sopra ** ** e ** ho anche impostato "** exclude from build **" per la stessa cartella. La cartella ora appare inattiva ma tutte le fonti da esso sono ancora in fase di costruzione. –

-1

Il miglior approccio è quello di utilizzare l'opzione di inclusione ed esclusione Patterns in Java Build Path.
Ad esempio, se si desidera escludere un progetto dalla creazione automatica:
1- Andare alle sue Proprietà-> Percorso build Java-> Origine.
2- Espandere la cartella nella sezione "Cartelle di origine sul percorso di generazione:" zona
3- Selezionare Exclude-> Modifica
4- Negli schemi di esclusione aggiungere **
Nota: per ulteriori informazioni su questo modelli: Include and Exclusion Patterns

0

Vai a Java Build Path -> Source -> Aggiungi cartella

scegliere le cartelle destra che deve essere parte di costruzione del percorso

Nella sopra screen shot src/main/risorse deve essere rimosso dalla compilazione come risulta in c errore di compilazione [ID pacchetto errato]. Quindi includi la cartella fino a src/main/resources.

Ho provato Percorso di creazione -> Escludi. Questo in realtà non risolve il problema. anche se il marchio RedX è cancellato da Eclipse, non sarà più giusto progetti Java. L'utente potrebbe non essere in grado di eseguire JUnit Test cases/debug ecc.

Ma includendo le cartelle giuste, possiamo continuare con Java Project.

Problemi correlati