Ao usar o Maven em um IDE, muitas vezes você encontra a necessidade de resolver o código fonte e Javadocs para as dependências da sua biblioteca. Existe uma maneira fácil de atingir esse objetivo.
O primeiro comando tentará baixar o código fonte de cada uma das dependências no seu arquivo pom.
O segundo comando tentará fazer o download dos Javadocs.
Maven está à mercê dos empacotadores da biblioteca aqui. Portanto, alguns deles não terão o código-fonte empacotado e muitos deles não terão Javadocs.
Caso você tenha muitas dependências, também pode ser uma boa ideia usar inclusões / exclusões para obter artefatos específicos, o comando a seguir, por exemplo, fará o download apenas das fontes da dependência com um artifactId específico:
Ele os coloca no mesmo diretório que os JARs binários em M2_HOME.
Alain O'Dea
19
Se você estiver usando o eclipse, pode ser útil também executar "mvn eclipse: eclipse" posteriormente e atualizar seu projeto no eclipse - evita que você anexe manualmente fontes a cada arquivo.
unigeek
1
Não consigo encontrar as fontes e os javadocs após o download. Eu verifiquei todos os diretórios sob M2_HOME
Patrick Kiernan
2
Após o mvn dependency:resolve -Dclassifier=javadocIntelliJ, o IDEA percebe automaticamente os javadocs, o que é muito bom.
Jonik
89
Configurando e executando o plug-in maven-eclipse (por exemplo, na linha de comandos mvn eclipse:eclipse)
O que você quer dizer? Você quer dizer que fontes e documentos são baixados quando você executa, mvn eclipse:eclipsese você adicionar isso ao arquivo POM?
21314 Lii13
3
Sim. Simples assim.
Robau
@RobAu, onde a fonte será baixada, será anexada ao projeto em si ou em algum outro lugar?
Jaskey
1
Ele será baixado como jar no seu M2_REPOcomo xxxx-yy-sources.jar, no mesmo local que o jar normal. Ele vai ficar anexado como código fonte para o frasco xxxx-aa nas bibliotecas
Robau
1
@KanagaveluSugumar, você precisa adicionar o M2_REPO ao eclipse e atualizar o projeto.
precisa saber é o seguinte
36
Se um projeto cria um jar das fontes do projeto e o implanta em um repositório maven, você o encontrará :)
Apenas para sua informação, os artefatos de fontes geralmente são criados pelo maven-source-plugin . Esse plug-in pode agrupar as fontes principais ou de teste de um projeto em um arquivo jar e, conforme explicado em Configurando o plug - in de origem :
(...) O arquivo jar gerado será nomeado pelo valor das finalNamemais "-sources" se forem as principais fontes. Caso contrário, seria finalNamemais "-test-sources" se fossem as fontes de teste.
O texto adicional foi fornecido para descrever um artefato ("-sources" ou "-test-sources" aqui) chamado de classificador.
Para declarar uma dependência de um artefato que usa um classificador, basta adicionar o <classifier>elemento Por exemplo:
Observe que geralmente você não faz isso, a maioria dos IDEs fornece suporte para fazer download de fontes (e / ou JavaDoc) do artefato principal sem declarar explicitamente uma dependência deles.
Por fim, observe também que alguns mecanismos de pesquisa de repositório permitem pesquisar artefatos usando o classificador (pelo menos o Nexus faz com a pesquisa avançada). Veja esta pesquisa por exemplo.
Em vez de baixar fontes para todas as dependências, é possível fazer o download apenas para algumas dependências, especificando-o em pom junto com a própria dependência, pode b através de alguma tag interna na tag de dependência ou algo semelhante?
Nanosoft 6/07
Este plug-in está aposentado
kiltek 12/03
18
Para baixar alguma fonte específica ou javadoc , precisamos incluir o GroupIds - é um valor separado por vírgula, como mostrado abaixo
Observe que o classificador não é separado por vírgula; para baixar o javadoc, precisamos executar o comando acima mais uma vez com o classificador como javadoc
Em vez de baixar fontes para todas as dependências, é possível fazer o download apenas para algumas dependências, especificando-o em pom junto com a própria dependência, pode b através de alguma tag interna na tag de dependência ou algo semelhante?
Isso coloca o artefato fornecido no repositório local do Maven, ou seja, normalmente $HOME/.m2/repository.
dependency:sources apenas baixa as fontes das dependências do projeto, não as fontes dos plug-ins nem as fontes de dependências definidas dentro dos plug-ins.
Esta é a única solução que funcionou para mim. Estou usando o Eclipse Kepler. Como isso faz referências apropriadas no caminho .class . Como o seguinte:
Quando segui a resposta do RobAu, apenas os documentos do Hibernate são baixados do repositório, não do Spring . Então eu visito o link que você forneceu e seguiu @ mrembisz, alterou a preferência do Maven e funciona como um encanto. Eu recebo o Spring Docs . Obrigado por compartilhar isso. +1.
OO7 15/05
9
se você estiver usando o eclipse, também poderá abrir Preferências> Maven e selecionar Baixar fontes de artefatos, isso deixaria o pom.xml intacto e manteria suas fontes ou documentos java (se selecionados) apenas para desenvolvimento diretamente no local da máquina ~ / .m2
Desmarquei a opção 'baixar fontes de artefatos' na configuração eclipse maven, para que ele faça o download apenas do jar. Mas, por último, tentei usar esta solução para baixar a fonte, ela falhou sem nenhuma mensagem. Eu removi a pasta jar no repositório local maven e baixei o jar novamente, depois o jar de origem baixou com sucesso. Eu acho que isso ocorre porque o repositório local maven tem o jar, então não posso usar esse método para baixar o código-fonte.
Frank
4
Você pode, se eles forem carregados. Geralmente eles são chamados de "frameworkname-version-source (s)"
No NetBeans 8 com um projeto orientado por Maven, basta clicar no contexto no item da lista de arquivos jar da dependência em que você está interessado. Escolha Download Sources. Aguarde um momento e o NetBeans baixará e instalará automaticamente o código-fonte, se disponível.
Da mesma forma, você pode optar Download Javadocpor instalar o documento localmente. Em seguida, você pode clicar em algum código no editor e optar por ver o JavaDoc.
Com base na observação do console do Maven no Eclipse (Kepler), as fontes serão baixadas automaticamente para uma dependência do Maven se você tentar abrir uma classe da referida dependência do Maven no editor para o qual você ainda não possui as fontes baixadas. Isso é útil quando você não deseja obter o código-fonte para todas as suas dependências, mas não sabe quais deseja antecipadamente (e está usando o Eclipse).
Eu também usei o plugin eclipse para colocar o projeto no espaço de trabalho do eclipse. Desde que eu trabalhei em um projeto diferente, vi que é possível trabalhar com o eclipse, mas sem o maven-eclipse-plugin. Isso facilita o uso em diferentes ambientes e permite o uso fácil do maven over eclipse. E isso sem alterar o arquivo pom.xml.
Então, eu recomendo a abordagem de Gabriel Ramirez.
Para depuração, você também pode usar um "Java Decompiler", como: JAD e descompilar a fonte em tempo real (embora a fonte gerada nunca seja a mesma que a original). Em seguida, instale o JAD como um plug-in no Eclipse ou no seu IDE favorito.
Caso contrário, você sempre pode "git clone" o repositório do github, se estiver lá, e obter o código específico.
Conforme explicado por outros, você pode usar o comando "mvn dependency: sources" no comando get e gerar fontes para a dependência que você está usando.
Nota: Algumas dependências não terão o sources.jar, pois elas não contêm código fonte, mas um arquivo pom. por exemplo , acionador de partida de inicialização por mola . Como neste caso:
As POMs iniciais são um conjunto de descritores de dependência convenientes que você pode incluir em seu aplicativo. Você obtém um balcão único para toda a tecnologia Spring e relacionada que você precisa, sem precisar procurar o código de exemplo e copiar e colar cargas de descritores de dependência.
Se você deseja encontrar o arquivo jar de origem para qualquer um dos artefatos manualmente, vá para o local do repositório maven para o artefato específico e, em Arquivos, clique em 'ver Tudo'. Você pode encontrar o arquivo jar de origem.
Respostas:
Fonte: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Documentação: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
fonte
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ, o IDEA percebe automaticamente os javadocs, o que é muito bom.Configurando e executando o plug-in maven-eclipse (por exemplo, na linha de comandos
mvn eclipse:eclipse
)fonte
mvn eclipse:eclipse
se você adicionar isso ao arquivo POM?M2_REPO
como xxxx-yy-sources.jar, no mesmo local que o jar normal. Ele vai ficar anexado como código fonte para o frasco xxxx-aa nas bibliotecasSe um projeto cria um jar das fontes do projeto e o implanta em um repositório maven, você o encontrará :)
Apenas para sua informação, os artefatos de fontes geralmente são criados pelo maven-source-plugin . Esse plug-in pode agrupar as fontes principais ou de teste de um projeto em um arquivo jar e, conforme explicado em Configurando o plug - in de origem :
O texto adicional foi fornecido para descrever um artefato ("-sources" ou "-test-sources" aqui) chamado de classificador.
Para declarar uma dependência de um artefato que usa um classificador, basta adicionar o
<classifier>
elemento Por exemplo:Observe que geralmente você não faz isso, a maioria dos IDEs fornece suporte para fazer download de fontes (e / ou JavaDoc) do artefato principal sem declarar explicitamente uma dependência deles.
Por fim, observe também que alguns mecanismos de pesquisa de repositório permitem pesquisar artefatos usando o classificador (pelo menos o Nexus faz com a pesquisa avançada). Veja esta pesquisa por exemplo.
fonte
O plug-in maven idea para o IntelliJ Idea permite especificar se as fontes e o documento java devem ou não ser resolvidos e baixados
fonte
Para baixar alguma fonte específica ou javadoc , precisamos incluir o GroupIds - é um valor separado por vírgula, como mostrado abaixo
Observe que o classificador não é separado por vírgula; para baixar o javadoc, precisamos executar o comando acima mais uma vez com o classificador como javadoc
fonte
Para baixar qualquer uso de artefato
Para fontes Groovy, isso seria
Para o javadoc do Groovy, você usaria
Isso coloca o artefato fornecido no repositório local do Maven, ou seja, normalmente
$HOME/.m2/repository
.dependency:sources
apenas baixa as fontes das dependências do projeto, não as fontes dos plug-ins nem as fontes de dependências definidas dentro dos plug-ins.fonte
você pode encontrar informações nesta pergunta relacionada: Obtenha os arquivos jar de origem anexados às dependências gerenciadas pelo Eclipse para Maven
se você usar o plug-in eclipse maven e, em seguida, use 'mvn eclipse: eclipse -DdownloadSources = true'
fonte
se você estiver usando o eclipse, também poderá abrir Preferências> Maven e selecionar Baixar fontes de artefatos, isso deixaria o pom.xml intacto e manteria suas fontes ou documentos java (se selecionados) apenas para desenvolvimento diretamente no local da máquina ~ / .m2
fonte
No Eclipse
pom.xml
Run As
->Maven generate-sources
ele irá gerar a fonte por padrão na pasta .m2
Pré-requisito:
O Maven deve ser configurado com o Eclipse.
fonte
No eclipse - clique no projeto e depois:
.
fonte
Você pode, se eles forem carregados. Geralmente eles são chamados de "frameworkname-version-source (s)"
fonte
NetBeans, clique em contexto
No NetBeans 8 com um projeto orientado por Maven, basta clicar no contexto no item da lista de arquivos jar da dependência em que você está interessado. Escolha
Download Sources
. Aguarde um momento e o NetBeans baixará e instalará automaticamente o código-fonte, se disponível.Da mesma forma, você pode optar
Download Javadoc
por instalar o documento localmente. Em seguida, você pode clicar em algum código no editor e optar por ver o JavaDoc.fonte
Com base na observação do console do Maven no Eclipse (Kepler), as fontes serão baixadas automaticamente para uma dependência do Maven se você tentar abrir uma classe da referida dependência do Maven no editor para o qual você ainda não possui as fontes baixadas. Isso é útil quando você não deseja obter o código-fonte para todas as suas dependências, mas não sabe quais deseja antecipadamente (e está usando o Eclipse).
Acabei usando a abordagem de @ GabrielRamierez , mas empregarei a abordagem de @ PascalThivent daqui para frente.
fonte
Se você conhece o groupId e o aritifactId , pode gerar um URL de download como este.
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
e você terá uma página como essa, escolheu a versão que precisa, apenas divirta-se!
fonte
Eu também usei o plugin eclipse para colocar o projeto no espaço de trabalho do eclipse. Desde que eu trabalhei em um projeto diferente, vi que é possível trabalhar com o eclipse, mas sem o maven-eclipse-plugin. Isso facilita o uso em diferentes ambientes e permite o uso fácil do maven over eclipse. E isso sem alterar o arquivo pom.xml.
Então, eu recomendo a abordagem de Gabriel Ramirez.
fonte
Para depuração, você também pode usar um "Java Decompiler", como: JAD e descompilar a fonte em tempo real (embora a fonte gerada nunca seja a mesma que a original). Em seguida, instale o JAD como um plug-in no Eclipse ou no seu IDE favorito.
fonte
Os repositórios Maven fornecem uma maneira simples de baixar fontes jar.
Vou explicá-lo usando uma demonstração para "spring-boot-actuator-autoconfigure".
Caso contrário, você sempre pode "git clone" o repositório do github, se estiver lá, e obter o código específico.
Conforme explicado por outros, você pode usar o comando "mvn dependency: sources" no comando get e gerar fontes para a dependência que você está usando.
Nota: Algumas dependências não terão o sources.jar, pois elas não contêm código fonte, mas um arquivo pom. por exemplo , acionador de partida de inicialização por mola . Como neste caso:
Referência: introdução aos iniciantes de inicialização por mola
fonte
No IntelliJ IDEA, você pode fazer o download das fontes de artefato automaticamente enquanto importa, ativando a opção Baixar fontes automaticamente:
Settings
→Build, Execution, Deployment
→Build Tools
→Maven
→Importing
fonte
Se você deseja encontrar o arquivo jar de origem para qualquer um dos artefatos manualmente, vá para o local do repositório maven para o artefato específico e, em Arquivos, clique em 'ver Tudo'. Você pode encontrar o arquivo jar de origem.
fonte