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!


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 :)


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.


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.)


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.


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.


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.


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.


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

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

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.



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.


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.


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.


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


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 \


-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.


1
Mas, junto com isso, é necessária uma marreta para o sistema de compilação Eclipse normal, esmagando o que costumava funcionar.
James Moore
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.