Pergunta

O IntelliJ está compilando o tempo todo, pois me avisa com linhas vermelhas onduladas quando há um erro?(além dos recursos de preenchimento automático) Ou está fazendo algum tipo de compilação psuedo?

Se estiver fazendo uma compilação legítima, onde coloca essas classes compiladas?Gostaria de apontar meu JRebel para esse diretório em vez das pastas de destino do módulo individual.

Foi útil?

Solução

O Meo tem razão, pelo que aprendi quando desenvolvi plugins para linguagens customizadas, o IntelliJ não compila nada até que você faça explicitamente o seu projeto.Enquanto você digita, seu lexer/analisador detecta qualquer token ou construção de código inválido.Enquanto isso, ele mantém um índice de cada classe e método do seu projeto e suas dependências, juntamente com suas assinaturas, etc.

Depois de parar de digitar, você verá um pequeno olho colorido na parte superior da medianiz direita.Indica que o IDE está executando "anotadores" e "inspeções de código".Eles são capazes de dizer se classes, métodos e variáveis ​​são válidos ou não com base no índice atual e no estado atual do seu arquivo (importações, declarações, etc.).O mesmo vale para variáveis ​​não utilizadas, parâmetros inválidos em chamadas de métodos, etc.

Prós:

  • os anotadores trabalham diretamente no que chamam de árvore PSI, que é basicamente um AST aprimorado que representa seu arquivo atual
  • pode ser mais rápido que compilar sempre (usa um índice e não precisa recompilar todas as classes dependentes)
  • anotadores podem detectar coisas javac não me importo, como possíveis bugs (por ex.usando = em vez de == em um while doença)

Contras:

  • isso é muito trabalho, basicamente eles precisam reescrever a lógica para encontrar todos os erros que javac pode produzir (é por isso que você pode encontrar muitos problemas em seu bugtracker chamado "bom código é vermelho" ou "código incorreto é verde", o que significa que há uma diferença entre o que eles detectam e o que o compilador produziria)

DR:não produz nenhum .class até você fazer seu projeto, tudo é feito “à mão”

Outras dicas

Para cada módulo, o caminho da saída do compilador pode ser encontrado a partir de Paths Aba nas configurações do módulo . O JreBel Plugin gera automaticamente rebel.xml e deriva o caminho de diretório de configurações de módulo , então você não precisa apontar para os locais manualmente - basta gerar rebel.xml usando o plugin IDE: Clique com o botão direito do mouse emA vista do projeto -> jrebel -> gerar rebel.xml

Intellij entende o código, ele não precisa compilar o código para saber o que está errado.

Só para acrescentar, após a compilação, as classes são armazenadas no target diretório se for um projeto Maven - caso contrário, o diretório é especificado na estrutura do projeto do IntelliJ, em "Saída do compilador do projeto":

enter image description here

Eu encontrei meus arquivos .class indo para as pastas out / production / main do diretório inicial do projeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top