Intellij Idea - Deep Dive

Os primeiros quatro capítulos deste tutorial foram projetados para dar aos iniciantes uma visão geral de nível básico do IntelliJ. Esta seção se aprofunda no IntelliJ e discute mais sobre projetos, seu formato e outras coisas.

Entendendo Projetos

Um projeto é um aplicativo ou software no qual você está trabalhando. Ele pode conter vários módulos, classes, bibliotecas, configuração e assim por diante. É o elemento superior da hierarquia.

Módulos de compreensão

Os módulos apresentam uma linha abaixo de 'Projeto'. Um módulo é uma entidade separada que pode ser compilada, depurada e executada independentemente de outros módulos. Um único projeto pode conter vários módulos. Você pode adicionar ou remover módulos de um projeto a qualquer momento.

Além disso, também podemos importar os módulos existentes. Siga estas etapas para importar os módulos existentes -

  • Vá para Arquivo → Estrutura do projeto.
  • Selecione os módulos e clique no ícone de adição.
  • Irá mostrar a opção de importar módulo.

Compreendendo as pastas

Content rooté uma pasta que contém todos os arquivos que constituem o seu módulo. Um módulo pode ter mais de uma pasta de conteúdo. As pastas são categorizadas nos seguintes tipos -

  • Sources - Ao atribuir esta categoria à pasta, instruímos o IntelliJ de que esta e sua subpasta contêm o código-fonte java e deve ser compilado como parte do processo de compilação.

  • Tests- Ao atribuir essa categoria à pasta, instruímos o IntelliJ de que é o local para os testes de unidade. Esta pasta pode acessar classes da pasta Sources.

  • Resources- Representa vários arquivos de recursos utilizados no projeto, por exemplo, imagens, XML e arquivos de propriedades. Durante o processo de compilação, o conteúdo desta pasta é copiado como está para a pasta de saída.

  • Excluded- O conteúdo da pasta excluída não será indexado pelo IntelliJ. Isso significa que o IntelliJ não fornecerá a sugestão de autocompletar código e outras dicas. Por exemplo, o diretório de saída e o diretório de destino são excluídos por padrão.

  • Test resources - Isso é semelhante aos recursos e usado para testes de unidade.

Noções básicas sobre bibliotecas

Biblioteca é uma compilação de diferentes classes. A biblioteca permite a reutilização do código. Em Java, a biblioteca pode ser incluída em ZIP, Jar ou simplesmente em uma pasta. Podemos definir bibliotecas em três níveis diferentes. Os níveis são - global, nível de projeto e módulo.

  • Global level - Compartilhado por todos os projetos.

  • Project level - Compartilhado por todos os módulos do projeto.

  • Module level - Compartilhado pelas classes desses módulos.

Compreendendo as facetas

Facetas são as extensões dos módulos. Eles adicionam suporte às estruturas e tecnologias. Quando uma faceta é adicionada a um módulo, o IntelliJ identifica que adiciona suporte. Por exemplo, dicas e ajuda no editor, novas ferramentas na barra da janela, download de dependências e assim por diante. Você pode adicionar facetas doFile → Project Structure janela como mostrado abaixo -

Artefatos

Artefatos são a saída de um projeto. Pode ser um arquivo JAR simples, aplicativo Java EE ou aplicativo Java EJB. Se estivermos usando ferramentas de compilação externas, como Gradle ou Maven, o IntelliJ adicionará artefato para elas automaticamente. Os artefatos podem ser criados navegando para oFile → Project Structure como mostrado abaixo -

Importando Projeto Existente

Nesta seção, entenderemos como importar um projeto existente. Podemos importar um projeto de duas maneiras -

  • Importar de uma fonte existente
  • Importe-o do modelo de construção.

Atualmente, ele oferece suporte a ferramentas de compilação Gradle e Maven. Para importar projeto -

  • Navegando para Arquivo → Novo → Projeto a partir da fonte existente.
  • Selecione o diretório do projeto existente, pom.xml do Maven ou script de construção do Gradle.
  • Clique no botão OK.

Formatos de Projeto

IntelliJ suporta dois tipos de formato de projeto, um deles é directory-based e outro é file-based. O formato baseado em diretório é o mais recente, recomendado. Por padrão, o IntelliJ cria um formato de projeto baseado em diretório. Você pode selecionar o formato do projeto ao criar um novo projeto. Na janela do novo projeto, basta clicar em mais configurações, conforme mostrado na imagem abaixo -

Formato de projeto baseado em diretório

Este formato ajuda a criar uma pasta de ideias em seu projeto e manter todos os arquivos de configuração dentro dessa pasta. As configurações são agrupadas nos arquivos xml. Por exemplo, irá criarmisc.xml, modules.xml, workspace.xmle assim por diante. A captura de tela a seguir ajudará você a entender como isso funciona -

Formato de projeto baseado em arquivo

Ele criará dois arquivos de projeto com ..ipr e wprextensões. O arquivo ipr conterá configurações específicas do projeto e o arquivo wpr conterá configurações específicas do espaço de trabalho.

Para converter um projeto baseado em arquivo em um projeto baseado em diretório, vá para o File → Save as a Directory-Based format.

Formato de projeto baseado em diretório vs baseado em arquivo

Comparado ao formato de projeto baseado em arquivo, o formato de projeto baseado em diretório armazena as configurações em uma pasta separada com nomes significativos. Outras diferenças são -

  • O armazenamento de configurações relacionadas em um único arquivo facilita o gerenciamento no formato de projeto baseado em diretório.

  • Se a pasta contiver a subpasta da ideia, o IntelliJ reconhecerá esse projeto. Por causa disso, você não precisa selecionar o projeto ipr explicitamente.

  • O formato de projeto baseado em diretório divide as configurações em vários arquivos, portanto, é mais fácil selecionar um tipo específico de configuração para armazenar no sistema de controle de versão.