Existe uma maneira fácil de anexar fonte no Eclipse?

130

Eu sou um grande fã da maneira como o Visual Studio fornecerá a documentação do comentário / nomes de parâmetros ao concluir o código que você escreveu e também o código que você está referenciando (várias bibliotecas / assemblies).

Existe uma maneira fácil de obter nomes javadoc / parâmetros embutidos no Eclipse ao executar o código completo ou passar o mouse sobre os métodos? Via plugin? Via alguma configuração? É extremamente irritante usar muitas bibliotecas (como acontece com frequência em Java) e, em seguida, é necessário ir ao site ou local do javadoc local para procurar informações quando você as encontra nos frascos de origem ali mesmo!

Alex Argo
fonte
Existe um método diferente ao usar o plugin maven m2e?
cmcginty
1
Veja também: Como anexar javadoc ou fontes a jars na pasta libs? para saber como fazer isso no Android, onde a solução abaixo não funciona.
blahdiblah

Respostas:

153

Resposta curta seria sim.

Você pode anexar a fonte usando as propriedades de um projeto.

Vá para Propriedades (para o Projeto) -> Caminho de Construção Java -> Bibliotecas

Selecione a Biblioteca à qual você deseja anexar o source / javadoc e, em seguida, expanda-o. Você verá uma lista como esta:

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

Selecione o local Javadoc e clique em Editar no lado direito da mão. Deve ser bastante direto a partir daí.

Boa sorte :)

Henry B
fonte
3
Obviamente, você deve observar que também pode fazer o mesmo na seção Anexo da fonte, se tiver a fonte real que deseja anexar. Então você obtém o Javadoc e pode olhar diretamente a fonte real, se desejar.
ColinD 23/09/08
14
Eu chamaria isso de maneira difícil e dolorosa de anexar fonte. Você precisa fazer isso sempre que incluir o arquivo jar em todos os projetos em que o usar. Quando você tem muitos jarros e muitos projetos, isso não é bom.
James Moore
3
@JamesMoore, existe uma maneira melhor?
Felix13
12
Muitos votos para esta resposta! A resposta aprimorada em cinco anos é o mencionador fonte de java mencionado que realmente se encaixa "de uma maneira fácil".
sevenforce
1
O que fazer quando temos "não modificáveis" na lib?
Henrique de Sousa
108

Até ontem, eu estava preso meticulosamente ao baixar zips de origem para toneladas de jarros e anexá-los manualmente a cada projeto. Então um colega me ligou para o Java Source Attacher . Ele faz o que o eclipse deve fazer - clique com o botão direito do mouse no menu de contexto que diz "Attach Java Source".

insira a descrição da imagem aqui

Ele baixa automaticamente a fonte para você e a anexa. Encontrei apenas algumas bibliotecas desconhecidas e, quando isso acontece, permite que você contribua com o URL de volta à comunidade, para que ninguém mais tenha problemas com essa biblioteca.

tterrace
fonte
Funciona, mas existe alguma maneira fácil de passar do método que você está inspecionando para o frasco de origem no Project Explorer?
Noumenon
Observe que os .jararquivos não são salvos na pasta do projeto, portanto .classpathnão serão portáveis ​​se você estiver colaborando com outras pessoas.
Stevoisiak #
14

Uma maneira fácil de fazer isso é:

  1. Faça o download dos respectivos arquivos / pasta SRC.

  2. No editor do eclipse, pressione a tecla Ctrl ou F3 em um método / classe para a qual você precisa a fonte. Uma nova guia é aberta, com a mensagem "Nenhuma fonte anexada encontrada".

  3. Clique no botão "anexar fontes", clique no botão "anexar pasta de origem", navegue até o local da pasta SRC baixada. Feito!

(ps: os rótulos dos botões podem variar um pouco, mas é praticamente isso.)

NM
fonte
5

Descobri que, às vezes, você aponta para o diretório que você acha que estava correto e, ainda assim, afirma que não consegue encontrar o arquivo na fonte anexada blá blá.

Atualmente, percebi que o último elemento do caminho era "src". Apenas remover esse elemento do caminho (apontando um nível acima do caminho real onde a pasta "org" ou "com" está localizada) faz com que ele funcione magicamente.

De alguma forma, o Eclipse parece implicar esse elemento de caminho "src", se presente, e se você o incluir no caminho de origem, o Eclipse engasga. Ou algo assim.

Stolsvik
fonte
Eu tenho o mesmo problema: a fonte está em um diretório chamado "source" (onde "org" etc.) está localizado, mas não consigo que o Eclipse o use enquanto Ctrl + clica no nome de um método. Em vez disso, recebo a visualização do código de bytes. Eu tentei mudar seu nome para "src", usando "org" como um diretório ou a um acima "fonte", mas nada muda ...
Matthieu
Não acredito que o Eclipse assuma srcparte do caminho. Basta escolher a pasta que contém uma pasta com o nome do domínio de nível superior do pacote.
H2ONaCl
@broiyan: Engraçado que você não acredita nisso, quando acabei de afirmar que é isso que experimentei empiricamente e fisicamente ! :-)
stolsvik
5

sim, existe uma maneira fácil ... vá para ... http://sourceforge.net/projects/jdk7src/ e baixe o arquivo zip. Em seguida, anexe isso ao eclipse. Forneça o caminho em que você baixou o arquivo zip no eclipse. Podemos então navegar pela fonte.

Ambika
fonte
5

1) Mantenha a tecla Control pressionada e clique com o botão esquerdo no método que deseja ver. O Eclipse o levará à página Source Not Found.

2) Clique em "Anexar fonte" insira a descrição da imagem aqui

3) insira a descrição da imagem aqui

4) Navegue para C: \ Arquivos de programas \ Java \ jdk-9.0.1 \ lib \ src.zip

5) Clique em OK insira a descrição da imagem aqui Agora você deve ver o código fonte.

Gene
fonte
4

Quando você adiciona um arquivo jar a um caminho de classe, pode anexar um diretório de origem ou um arquivo zip ou jar a esse jar. Nas propriedades Java Build Path, na guia Libraries, expanda a entrada para o jar e você verá que há um item para o anexo de origem. Selecione este item e clique no botão Editar. Isso permite selecionar a pasta, jar ou zip que contém a fonte.

Além disso, se você selecionar uma classe ou método no jar e CTRL + CLICK nela (ou pressionar F3), irá para a exibição de bytecode, que tem uma opção para anexar o código-fonte.

Fazer essas coisas fornecerá todos os nomes de parâmetros e o javadoc completo.

Se você não tiver a fonte, mas o javadoc, poderá anexá-lo através do primeiro método. Pode até fazer referência a um URL externo se você não o tiver baixado.

Matt
fonte
3
  1. Clique no código JAVA que você deseja ver. (Clique em Lista para abrir o List.java, se você deseja verificar o código-fonte do java.util.List)
  2. Clique no botão "Anexar fonte".
  3. Você será solicitado a "Selecionar o local (pasta, JAR ou zip) que contém a fonte do arquivo rt.jar).
  4. Selecione a opção "Local externo". Localize o arquivo src.zip.
  5. O caminho para src.zip é: * \ Java \ jdk1.8.0_45 \ src.zip
BSM
fonte
2
  1. Coloque os arquivos de origem em um arquivo zip (como acontece com a fonte java)
  2. Vá para Propriedades do projeto -> Bibliotecas
  3. Selecione Anexo de origem e clique em 'Editar'
  4. Na configuração do anexo de origem, clique em 'Variável'
  5. Em "Seleção de variável", clique em 'Novo'
  6. Coloque um nome significativo e selecione o arquivo zip criado na etapa 1
Ranga
fonte
1

Outra opção é clicar com o botão direito do mouse no seu arquivo jar, que estaria em (Seu Projeto) -> Bibliotecas Referenciadas -> (seu jar) e clique em Propriedades. Em seguida, clique em Java Source Attachment. E, em seguida, no caminho local, coloque o local para o seu arquivo jar de origem.

Essa é apenas outra abordagem para anexar seu arquivo de origem.

Nilesh Tailor
fonte
1

Se você criar suas bibliotecas com gradle, poderá anexar fontes aos jars criados e o eclipse as usará automaticamente. Veja a resposta de @MichaelOryl Como criar fontes jar com gradle .

Copiado aqui para sua referência:

jar {
    from sourceSets.main.allSource
}

A solução mostrada é para uso com o plugin gradle java. A milhagem pode variar se você não estiver usando esse plugin.

Joshua Richardson
fonte
0

Outro pensamento para facilitar isso ao usar uma compilação automatizada:

Ao criar um jar de um de seus projetos, também crie um jar de arquivos de origem:
project.jar
project-src.jar

Em vez de ir para o diálogo de opções do caminho de construção para adicionar uma referência de origem a cada jar, tente o seguinte: adicione uma referência de origem no diálogo. Edite seu caminho .classpath e, usando a primeira entrada jar como modelo, adicione os arquivos jar de origem a cada um dos seus outros jarros.

Dessa forma, você pode usar os recursos de navegação do Eclipse ao máximo, enquanto ainda usa algo mais independente para construir seus projetos.

Akrikos
fonte
0

Eu pediria uma alternativa para anexar fontes ao mesmo JAR sendo usado em vários projetos. Originalmente, eu pensava que a única alternativa é recriar o JAR com a fonte incluída, mas olhando para o recurso "user library", você não precisa construir o JAR com a fonte.

Essa é uma alternativa quando você possui vários projetos (relacionados ou não) que fazem referência ao mesmo JAR. Crie uma "biblioteca de usuários" para cada JAR e anexe a origem a eles. Da próxima vez que você precisar de um JAR específico, em vez de usar "Adicionar JARs ..." ou "Adicionar JARs Externos ...", adicione a "biblioteca do usuário" que você criou anteriormente.

Você só precisaria anexar a fonte ONCE por JAR e poderá reutilizá-la para qualquer número de projetos.

nevets1219
fonte
0

Para quem está escrevendo plugins do Eclipse e deseja incluir a fonte ... no recurso ExportWizard, há uma opção para incluir a fonte: insira a descrição da imagem aqui

Stefan
fonte
0

Basta clicar em anexar fonte e selecionar o caminho da pasta ... o nome será o mesmo que o nome da pasta (no meu caso). Lembre-se de uma coisa que você precisa selecionar o caminho até o local base da pasta do projeto com "\" no sufixo ex D: \ MyProject \

Gaurav Deshmukh
fonte
-2

Pode parecer um exagero, mas se você usar o maven e incluir o código-fonte, o plug-in mvn eclipse gerará toda a configuração de código-fonte necessária para fornecer toda a documentação em linha que você poderia solicitar.

Alex Argo
fonte
1
Mas, junto com isso, é necessária uma marreta para o sistema de compilação Eclipse normal, esmagando o que costumava funcionar.
James Moore