C'è un modo semplice per collegare la fonte in Eclipse?


130

Sono un grande fan del modo in cui Visual Studio ti fornirà la documentazione dei commenti / i nomi dei parametri quando compili il codice che hai scritto e anche il codice a cui stai facendo riferimento (varie librerie / assiemi).

C'è un modo semplice per ottenere javadoc / nomi dei parametri in linea in Eclipse quando si esegue il codice completo o si passa il mouse sopra i metodi? Tramite plugin? Via qualche impostazione? È estremamente fastidioso utilizzare molte librerie (come spesso accade in Java) e quindi visitare il sito Web o la posizione javadoc locale per cercare informazioni quando le si trovano nei barattoli di origine proprio lì!


Esiste un metodo diverso quando si utilizza il plugin maven m2e?
cmcginty,

1
Vedi anche: Come collegare javadoc o fonti ai vasetti nella cartella libs? per come farlo per Android dove la soluzione seguente non funziona.
blahdiblah,

Risposte:


153

La risposta breve sarebbe sì.

È possibile collegare l'origine utilizzando le proprietà per un progetto.

Vai su Proprietà (per il Progetto) -> Percorso di costruzione Java -> Librerie

Seleziona la libreria a cui vuoi allegare source / javadoc e poi espanderla, vedrai un elenco come questo:

Source Attachment: (none)
Javadoc location: (none)
Native library location: (none)
Access rules: (No restrictions)

Seleziona la posizione Javadoc e quindi fai clic su Modifica sul lato destro. Dovrebbe essere abbastanza semplice da lì.

In bocca al lupo :)


3
Dovresti ovviamente notare che puoi anche fare lo stesso con la sezione Allegato sorgente se hai la fonte reale che vuoi collegare. Quindi ottieni Javadoc e puoi guardare direttamente la fonte reale se vuoi.
ColinD,

14
Definirei questo il modo duro e doloroso di collegare la fonte. Devi farlo ogni volta che includi il file jar in ogni progetto che usi il jar. Quando hai molti barattoli e molti progetti, non va bene.
James Moore,

3
@JamesMoore, c'è un modo migliore?
Felix,

12
Troppi voti per questa risposta! La risposta migliorata di 5 anni è il menzionato attacher java source che si adatta davvero a "un modo semplice".
sevenforce,

1
Cosa fare quando abbiamo "non modificabile" nella libreria?
Henrique de Sousa,

108

Fino a ieri sono rimasto bloccato scaricando scrupolosamente le zip di origine per tonnellate di vasetti e attaccandole manualmente per ogni progetto. Quindi un collega mi ha fatto conoscere The Java Source Attacher . Fa quello che dovrebbe fare eclissi: un menu contestuale del tasto destro che dice "Collega Java Source".

inserisci qui la descrizione dell'immagine

Scarica automaticamente la fonte per te e la allega. Ho colpito solo un paio di librerie di cui non è a conoscenza e quando ciò accade ti consente di contribuire a riportare l'URL alla community, in modo che nessun altro abbia problemi con quella libreria.


Funziona, ma c'è un modo semplice per passare dal metodo che stai ispezionando al vaso da cui proviene in Project Explorer?
Noumenon,

Nota che i .jarfile non vengono salvati nella cartella del tuo progetto, quindi .classpathnon sarai portatile se stai collaborando con altri.
Stevoisiak,

14

Un modo semplice per farlo è:

  1. Scarica i rispettivi file / cartelle SRC.

  2. Nell'editor di eclissi, Ctrl + clic o F3 su un metodo / classe per cui hai bisogno del sorgente. Si apre una nuova scheda che dice "Nessuna fonte collegata trovata".

  3. Fare clic sul pulsante "Allega origini", fare clic sul pulsante "Allega cartella di origine", selezionare il percorso della cartella SRC scaricata. Fatto!

(ps: le etichette dei pulsanti possono variare leggermente, ma è praticamente così.)


5

Ho scoperto che a volte, fai riferimento alla directory che ritieni sia corretta, e quindi afferma ancora che non riesce a trovare il file nella fonte allegata blah blah.

In questi momenti, ho capito che l'ultimo elemento del percorso era "src". La semplice rimozione di questo elemento path (indicando così un livello sopra il percorso effettivo in cui si trova la cartella "org" o "com") lo fa magicamente funzionare.

In qualche modo, Eclipse sembra implicare questo elemento del percorso "src" se presente, e se poi lo hai incluso nel percorso sorgente, Eclipse soffoca. O qualcosa di simile.


Ho lo stesso problema: la fonte è in una directory chiamata "fonte" (dove si trova "org" ecc.) Ma non riesco a farla usare da Eclipse mentre Ctrl + clic sul nome di un metodo. Invece ottengo la vista del codice byte. Ho provato a cambiare il suo nome in "src", usando "org" come directory, o quello sopra "source" ma non cambia nulla ...
Matthieu

Non credo che Eclipse presupponga che faccia srcparte del percorso. Basta scegliere la cartella che contiene una cartella che prende il nome dal nome di dominio di primo livello del pacchetto.
H2ONaCl

@broiyan: Divertente che tu non ci creda, quando ho appena affermato che questo è quello che ho sperimentato empiricamente, fisicamente ! :-)
stolsvik,

5

sì, c'è un modo semplice ... vai su ... http://sourceforge.net/projects/jdk7src/ e scarica il file zip. Quindi allegalo all'eclissi. Indica il percorso in cui hai scaricato il file zip in eclipse. Possiamo quindi navigare attraverso la fonte.


5

1) Tenere premuto Control + tasto sinistro del mouse sul metodo che si desidera vedere. Quindi Eclipse ti porterà alla pagina Fonte non trovata.

2) Fai clic su "Allega sorgente" inserisci qui la descrizione dell'immagine

3) inserisci qui la descrizione dell'immagine

4) Passare a C: \ Programmi \ Java \ jdk-9.0.1 \ lib \ src.zip

5) Fare clic su OK inserisci qui la descrizione dell'immagine Ora dovresti vedere il codice sorgente.


4

Quando aggiungi un file jar a un percorso di classe, puoi allegare una directory di origine o un file zip o jar a quel file jar. Nelle proprietà Percorso build Java, nella scheda Librerie, espandi la voce per il vaso e vedrai che c'è un elemento per l'allegato di origine. Seleziona questo elemento e fai clic sul pulsante Modifica. Ciò consente di selezionare la cartella, il vaso o lo zip che contiene l'origine.

Inoltre, se selezioni una classe o un metodo nel jar e CTRL + CLICK su di esso (o premi F3), entrerai nella vista bytecode che ha un'opzione per allegare il codice sorgente.

Fare queste cose ti darà tutti i nomi dei parametri e javadoc completo.

Se non hai la fonte ma hai il javadoc, puoi collegare il javadoc tramite il primo metodo. Può anche fare riferimento a un URL esterno se non lo hai scaricato.


3
  1. Fai clic sul codice JAVA che vuoi vedere. (Fare clic su Elenco per aprire List.java se si desidera controllare il codice sorgente per java.util.List)
  2. Fai clic sul pulsante "Allega sorgente".
  3. Ti verrà chiesto di "Selezionare la posizione (cartella, JAR o zip) contenente la fonte per rt.jar).
  4. Seleziona l'opzione "Posizione esterna". Individua il file src.zip.
  5. Il percorso per src.zip è: * \ Java \ jdk1.8.0_45 \ src.zip

2
  1. Inserisci i file di origine in un file zip (come fa per l'origine java)
  2. Vai a Proprietà progetto -> Librerie
  3. Seleziona l'allegato sorgente e fai clic su "Modifica"
  4. Nella configurazione degli allegati di origine fare clic su "Variabile"
  5. In "Selezione variabile" fai clic su "Nuovo"
  6. Inserisci un nome significativo e seleziona il file zip creato nel passaggio 1

1

Un'altra opzione è fare clic con il pulsante destro del mouse sul file jar che si trova in (Il tuo progetto) -> Librerie referenziate -> (il tuo vaso) e fare clic su Proprietà. Quindi fare clic su Java Source Attachment. E quindi nel percorso della posizione inserire la posizione per il file jar di origine.

Questo è solo un altro approccio per allegare il tuo file sorgente.



1

Se costruisci le tue librerie con Gradle, puoi collegare le fonti ai barattoli che crei e quindi Eclipse le utilizzerà automaticamente. Vedi la risposta di @MichaelOryl Come costruire fonti jar con gradle .

Copiato qui per riferimento:

jar {
    from sourceSets.main.allSource
}

La soluzione mostrata è per l'uso con il plugin java gradle. Il chilometraggio può variare se non si utilizza quel plug-in.


0

Un altro pensiero per renderlo più semplice quando si utilizza una build automatizzata:

Quando crei un barattolo di uno dei tuoi progetti, crea anche un barattolo di file di origine:
project.jar
project-src.jar

Invece di accedere alla finestra di dialogo delle opzioni del percorso di creazione per aggiungere un riferimento di origine a ciascun vaso, provare quanto segue: aggiungere un riferimento di origine attraverso la finestra di dialogo. Modifica il tuo .classpath e usando la prima voce jar come modello, aggiungi i file jar sorgente a ciascuno dei tuoi altri vasi.

In questo modo è possibile utilizzare al massimo gli aiuti alla navigazione di Eclipse mentre si utilizza ancora qualcosa di più autonomo per costruire i propri progetti.


0

Stavo per chiedere un'alternativa al collegamento di fonti allo stesso JAR utilizzato in più progetti. Inizialmente, avevo pensato che l'unica alternativa fosse ricostruire il JAR con il sorgente incluso, ma guardando la funzione "libreria utente", non è necessario costruire il JAR con il sorgente.

Questa è un'alternativa quando si hanno più progetti (correlati o meno) che fanno riferimento allo stesso JAR. Crea una "libreria utente" per ciascun JAR e allega l'origine. La prossima volta è necessario un JAR specifico, invece di utilizzare "Aggiungi JAR ..." o "Aggiungi JAR esterni ..." aggiungi la "libreria utente" che hai creato in precedenza.

Dovresti solo collegare la fonte ONCE per JAR e puoi riutilizzarla per qualsiasi numero di progetti.


0

Per coloro che stanno scrivendo plugin Eclipse e vogliono includere il sorgente ... nella funzione ExportWizard esiste un'opzione per includere il sorgente: inserisci qui la descrizione dell'immagine


0

Basta fare clic su Allega origine e selezionare il percorso della cartella ... il nome sarà lo stesso del nome della cartella (nel mio caso). Ricorda una cosa che devi selezionare il percorso fino alla posizione di base della cartella del progetto con "\" al suffisso ex D: \ MyProject \


-2

Può sembrare eccessivo, ma se usi maven e includi il sorgente, il plugin mvn eclipse genererà tutta la configurazione del sorgente necessaria per darti tutta la documentazione in linea che potresti chiedere.


1
Ma insieme a questo, ci vuole una mazza per il tuo normale sistema di costruzione Eclipse, schiacciando tutto ciò che funzionava.
James Moore,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.