2010-03-26 26 views
9

Mi piacerebbe creare una cartella sotto un pacchetto in Eclipse ... Lo scopo di questa cartella è puramente per scopi organizzativi. Significato, non voglio che sia un altro pacchetto. Ogni volta che provo ad aggiungere una cartella sotto un pacchetto, crea semplicemente un pacchetto. Mi piacerebbe avere la seguente struttura:Come creare una cartella in Eclipse?

project/src/package1/someClass.java 
project/src/package1/someFOLDER/anotherClass.java 
project/src/package1/package2/anotherFOLDER/oneOtherClass.java 

E 'possibile farlo senza aggiungere un pacchetto? Vengo da uno sfondo .NET/C# e C++ ... qui vorrei solo aggiungere una cartella e il riferimento a quella classe verrebbe aggiornato nel progetto.

Come posso aggiungere una cartella organizzativa in eclissi? Grazie

risposta

4

WTF dovresti fare quando hai bisogno di più classi per essere privato del pacchetto in un grande progetto? Guardate i vostri file di classe 25-30 tutti nella stessa directory?

Questo è un problema con il sistema di pacchetti Java. Ogni pacchetto è una directory e sotto-pacchetti sono solo pacchetti diversi (senza regole di visibilità speciali).

Il livello di visibilità più scadente è pacchetto-privato, in modo che, sì, si debbano raggruppare i file 25-30 nello stesso pacchetto per evitare la visibilità pubblica universale.

OSGi risolve questo problema introducendo pacchetti, che possono scegliere di non rendere i pacchetti visibili all'esterno. Questo ti dà pacchetti "progetto-privato".

Aggiornamento: Inoltre, è possibile ridurre il numero di file inserendo classi correlate nello stesso file sorgente. Solo le classi pubbliche devono avere un proprio file sorgente (preferisco avere un solo file per classe, anche se pubblico o meno).

8

In realtà, le cartelle sono pacchetti in Java, quindi la tua domanda non ha alcun senso in un contesto Java.

Il termine "pacchetto" potrebbe essere fuorviante ... un pacchetto non è sicuramente la stessa di un assembly in .NET. Puoi pensare al "pacchetto" più come uno spazio dei nomi, che nel mondo Java è determinato dal percorso della directory.

Per i file non di origine, è possibile creare una nuova cartella al di fuori della cartella di origine, verrà quindi considerata come qualsiasi altra cartella e non un pacchetto.

+0

pacchetti sono cartelle che contengono il codice sorgente. il codice non sorgente non va nella cartella del pacchetto, può andare altrove. –

+3

"pacchetto", in un contesto Java, * non * significa "/ pacchetto distribuibile distribuibile" –

1

I pacchetti Well sono cartelle.

Se si desidera che Eclipse non crei il contenuto del pacchetto/cartella, fare clic con il tasto destro del mouse sul progetto, selezionare Proprietà e in Java> Percorso di costruzione modificare i filtri di inclusione/esclusione.

2

Se si creano le cartelle per separare le classi per scopi organizzativi, ma si desidera comunque che siano nello stesso pacchetto per l'accesso, è possibile creare più cartelle di origine e farle costruire nella stessa posizione. Quindi, la gerarchia delle cartelle sarà leggermente diversa:

project/concern1_src/package1/someClass.java 
project/concern2_src/package1/anotherClass.java 
project/concern3_src/package1/package2/oneOtherClass.java 

Come ho detto, tutte e tre le cartelle di origine possono essere compilate nella stessa directory di destinazione. Oppure possono costruire in diverse directory di destinazione, se lo desideri. Le cartelle di origine separate verranno trasferite anche a Package Explorer.

+0

Nota che il percorso all'interno delle cartelle di origine ("package1") deve ancora riflettere la dichiarazione di pacchetto Java. Quindi non sono sicuro se questo approccio funzionerà troppo bene dal punto di vista organizzativo. Potrebbe essere usato per dividere tra "src pubblica" e "l'attuazione src", ma anche altri tipi di divisioni sarebbe difficile, soprattutto se le "preoccupazioni" sono diversi da pacchetto a pacchetto. Una cosa che fa è messo la cartella principale in una gerarchia del filesystem completamente diverso da quello della sottocartella, che sembra un passo indietro, in realtà. – Thilo

+0

Stavo rispondendo sulla base della mia ipotesi su quale potesse essere lo scopo organizzativo. Il requisito era che un certo numero di classi dovessero avere accesso privato al pacchetto. In Java, ciò implica che devono essere nella stessa directory o in una struttura di directory con mirroring. L'altro suggerimento era in un commento fatto dall'inchiesta a un'altra risposta; in sostanza era indesiderabile dover guardare i file di classe 25-30 allo stesso tempo. Alla fine, la mia ipotesi è che l'utilizzo di Eclipse e Java porterà a idee diverse su come navigare attraverso il codice. –

+0

"la mia ipotesi è che l'utilizzo di Eclipse e Java più porterà a diverse idee su come navigare attraverso il codice": Questa è la risposta corretta. – Thilo

-2

in Eclipse cartella src è la cartella di origine principale. Per prima cosa basta rimuovere dal sorgente di creazione facendo clic con il tasto destro sulla cartella src e scegliere il percorso di compilazione-> "Rimuovi dal percorso di creazione". Successivamente creare la cartella sotto src e fare clic con il tasto destro sulla sottocartella (pacchetto1) e selezionare di nuovo buildpath-> Usa come cartella di origine. Ora ottieni src/package1.

Problemi correlati