Debug e classes de outro projeto - Resolvido

35 respostas Resolvido
guilhermebhte

Não consigo debugar corretamente neste projeto e mostra esta mensagem de erro.
Debug

Não consigo ver o código das classes do projeto pai
Classes de outro projeto

No meu pom está assim do projeto atual está assim:

<dependency>
	<groupId>br.eti.netsoft</groupId>
	<artifactId>netsoft-web</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</dependency>

O que pode ser feito ?

35 Respostas

staroski

Você está tentando inspecionar o conteúdo da variável listaDto antes dela ter sido declarada, tem que dar um F6 pra ir pra próxima linha.

E você possui o código fonte dessas classes?
Caso possua, elas estão no source path do eclipse?

guilhermebhte

Sobre o listaDto ela foi criada em cima do breakpoint.

Então o código .java das classes temos sim. Foi construída por nós. Está em outro projeto.

staroski

Exatamente, tu só vai poder inspecioná-la após executar a linha do break point, ou seja, na linha seguinte. O break point interrompe a execução antes da linha ser executada.

Então seus projetos não estão configurados direito, tem que adicionar os projetos que tem os .java no source lookup de seu projeto.

guilhermebhte

Estou falando que não consigo debugar assim em um determinado projeto. O que estou falando é que para eu ver os valores de uma variável eu tenho que ir na aba Variables. Enquanto no outro eu posiciono o mouse na variável e mostra os valores.

Sobre o segundo, pesquisei, acho que adicionei, mas não funcionou. Pode me dar um help.

guilhermebhte

Alguma ideia ?

guilhermebhte

Alguma ideia ?

javaflex

Sua questao está confusa. O que seria um projeto pai? É mais simples ter um projeto referenciando as packages necessárias.

staroski

Já conferiu como estão os source attachments?

Properties --> Java Buld path --> Libraries --> Maven Dependencies --> <JAR que contém as classes que você não consegue depurar>

guilhermebhte

Entendi.

Tenho um projeto que tem algumas classes genéricas de consultas, pesquisas, validações e utils.

Todos os meus projetos estende deste principal.

Este projeto principal sempre gero maven com versionamento.

Entendeu ?

guilhermebhte

Mesmo eles sendo gerados pelo maven tenho que fazer isto ?

javaflex

Nao seria mais prático 1 projeto e n packages, onde essas classes genéricas ficariam em um package referenciado no projeto?

Nunca usei Maven, atrapalha mais do que ajuda. Prefiro referenciar sob controle, é um trabalho eventual e quando dá problema é mais fácil resolver.

guilhermebhte

São projetos distintos, mas com a mesma base.

Ai para não duplicar a base é melhor deixar em um projeto separado.

Exemplo de projetos:

  1. Principal - Este não vai ser duplicado. Este aqui tem todo o artefato de consultar, inserir, update e deletar as entidades de todos os projetos. Além de ter classes útil de validação, comparação, envio de e-mail, etc… Os outros projetos chamam estas classes. Assim quando altero, incluo algo neste projeto e jero uma versão no maven, se modificar a versão nos outros, automaticamente é incluído.
  2. Nota Fiscal Eletrônica de Serviço depende do Principal;
  3. Contabilidade depende do Principal;
  4. Folha de pagamento depende do Principal;
  5. Licitação depende do Principal;
  6. Veículo depende do Principal;
staroski

Pelo jeito o m2e não associa os fontes com os JARs, então provavelmente terá de fazer, a menos que tenha uma forma de configurar isso nos POMs.

Se nunca utilizou, como pode afirmar que atrapalha mais do que ajuda? :wink:

FearX

Eu sou obrigado a concordar com o palestrinha.

Não dá pra saber se atrapalha sem usar, mas eu posso dizer uma coisa:

Prefiro o Gradle.

staroski

Palestrinha? Não entendi…

FearX

É uma frase do Choque de Cultura, vale a pena o clique na série.

No contexto, o “palestrinha” é o Maurílio, um cara que entende muito sobre o assunto.

javaflex

Nao uso, mas vejo outras equipes passando por problemas. Assim como no .NET com nuget. Realmente nao sei qual é a dificuldade em referenciar libs no projeto, que nem é um trabalho rotineiro.

FearX

Isso seria baixar bibliotecas e colocar lá “na mão” e tal?

javaflex

Imagina ficar dias perdendo dias por trocar por Maven?

Pode até não ser por causa do Maven, mas dependendo do caso é uma solucao para problemas que nao existem, exceto quem usa constantemente saladas de frameworks. Ai depois Maven é tao bom que começam a usar Gradle.

javaflex

Eu faço isso em menos de 1 minuto no .NET. Nao sei como é hoje no Java e suas IDEs. Nao é um trabalho rotineiro que me faça necessitar dessas solucoes mágicas. Muito legal quando funciona, mas quando dá m vai ter que ralar pra entender o que a ferramenta fez ou que falta configurar.

FearX

Não foi julgando nem nada, foi só pra entender o termo mesmo.

E, quanto ao Java: fale o que for, mas que é dez vezes mais fácil gerenciar dependência com o Gradle do que o “manual”, isso é. xD

[]'s

javaflex

Neste caso nao conheço equipe Java aqui que use Gradle. Se ele for pelo menos no nível do nuget do .NET realmente é melhor, devem lidar com menos problemas.

guilhermebhte

Incluir que

staroski

Não é no botão Add Jars…

Expanda o Maven Dependencies ali debaixo do JRE System Library [Java SE-1.8]
Localize o JAR o qual você não está conseguindo depurar
Edite o Source Attachment dele apontando pro seu projeto com os fontes dele

guilhermebhte

Entendi. Não funcionou.

staroski

Mostra como ficou seu Maven Dependencies

guilhermebhte

Antes


Depois

javaflex

Se o código de ambos os projetos são mantidos pela sua equipe, seguindo o feijão com arroz nao tem mistério:

Exemplo funcionando:

Projetos.zip (4,4 KB)

Fora isso, só te tiver usando algum complicador no meio do caminho. Mas procure partir do básico e vai avançando nas escolhas adicionais, assim fica mais fácil identificar a causa, do que partir de toda uma solução pronta com uma penca de ferramentas no meio do caminho gerando um bando de configurações adicionais.

guilhermebhte

Sim, tenho outros projetos que trabalho que consigo.

Mas este tenho certeza que está faltando alguma configuração, que ainda não descobri.

guilhermebhte

Estou com maven.

javaflex

Cria do zero o projeto igual te mostrei. Vai passando as coisas do outro pra esse aos poucos, desde o hello world sempre testando a cada passo, voce vai ver funcionado até chegar em um passo que vai dar ruim, entao ficará fácil resolver pontualmente. Segue algum tutorial que nao tenha seguido ainda, vai que fazendo do zero funciona por sair do vício anterior.

Isso vale para qualquer problema que se leve muito tempo pra identificar a causa.

guilhermebhte

Mas o projeto é do zero.

javaflex

Como do zero se está usando maven e uma infinidade de libs? Do zero é o que te passei e funciona. A partir daí vai passando as classes pro projeto feito do zero. Depois passa a usar maven ou o que for, passo a passo até parar no problema causado pelo passo que vai dar.

staroski
Solucao aceita

No “antes” você colocou o próprio JAR como source attachment, tá errado, adiciona o PROJETO onde estão os fontes.

No “depois” você não tem source attachment, está como “none”

guilhermebhte

Funcionou

Obrigado @staroski

Criado 6 de outubro de 2018
Ultima resposta 1 de nov. de 2018
Respostas 35
Participantes 4