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.