Da Instalação ao Projeto Web no IntelliJ IDEA13

1. Instalando o IntelliJ IDEA 13+ (Ultimate)

1.1. Antes de instalar a IDE

1.2. Instalando a IDE

2. Projeto Java - Framework (Futurepages)

2.1. Criando Novo Projeto

2.2. Importando Projeto do Subversion

2.3. Configurando a Estrutura do Projeto

3. Projeto Web

3.1. Novo Projeto a partir do Subversion

3.2. Importando o Projeto

3.3. Criando o Tomcat e sua configuração

3.4. Configurando o Projeto

3.5. Configurando e Executando a Aplicação

4. Integrando o Projeto Web ao Futurepages

4.1. Importanto o Módulo

4.2. Adaptando a Estrutura

5. Durante o Desenvolvimento

5.1. Mapa de Caracteres

5.2. Change Lists

1. Instalando o IntelliJ IDEA 13+ (Ultimate)

1.1. Antes de instalar a IDE

Muito provavelmente sua a plataforma padrão Java Default do seu SO seja maior que a versão 6, no entanto se nossos servidores em produção utilizarem JDK6, é necessário colocarmos o JDK6 na IDE. Baixe-o e descompacte numa pasta onde ficam as JDKs de seu SO. Explicaremos como fazer a inclusão na IDE no momento oportuno deste tutorial. (Link para Download JDK - versão somente para descompactar)

 transaction-isolation=READ-COMMITTED

(...)

# The MySQL server
[mysqld]

default-storage-engine=InnoDB
transaction-isolation=READ-COMMITTED

user                = nobody
port                = 3306
socket            = /opt/lampp/var/mysql/mysql.sock


(...)

1.2. Instalando a IDE

DICAS IMPORTANTES SOBRE A IDE INTELLIJ IDEA

  1. No IntelliJ IDEA o conceito de Workspace é um pouco diferente dos demais concorrentes quanto às nomenclaturas. Para cada projeto (tratado como um arquivo *.iml), é possível abrir-se uma nova janela da IDE. Ou seja, uma jenela da IDE aberta sempre está associada a um projeto. Se não há projeto, não há janela. É por isso que na primeira vez que abrimos a IDE, somos levados ao “Modo Welcome”. Uma pequena janela com as únicas opções disponíveis.

  1. O conceito de Workspace é por projeto, Workspace é a forma ou estado como seu projeto se apresenta nas micro-janelas de ferramentas e arquivos. Você salva as configurações do workspace do projeto na pasta “.idea” em sua raiz.

  1. Para suprir a ausência de vários projetos num mesmo Workspace, o IntelliJ apresenta o conceito de módulos. Cada módulo é como se fosse um “projeto” e o que ele chama de projeto seria o grupo de projetos (módulos), e o Workspace é associado a este grupo.

  1. Ao tentar integrar projetos, importa-se os módulos dos outros projetos.

  1. Um conceito interessante que a ferramenta adotou, é a personalização de artefatos, o que nos permite via ferramenta visual, configurar artefatos que serão criados no Build do Projeto. Pastas, pacotes de arquivos, arquivos compilados, bibliotecas empacotadas, todos podem ter suas criações personalizadas à nossa maneira. Esta configuração de artefatos está fora dos módulos, a nível de projeto.

2. Projeto Java - Framework (Futurepages)                

2.1. Criando Novo Projeto

Caso queira começar o projeto do zero de posse apenas do código-fonte do futurepages, siga este passo 2.1, onde será criado o projeto, bastando apenas colocar os arquivos da pasta src e lib na pasta do Projeto. Caso seja do interesse, versionar e manter atualizado o projeto, o ideal é que siga o 2.2.

           

2.2. Importando Projeto do Subversion

Observe que no repositório SVN do Futurepages, já possuímos os arquivos de configuração para esta IDE (pasta .idea e arquivo futurepages.iml) o que possibilitará  baixar o código a partir de um cliente SVN (Tortoise por exemplo) e depois, abrir o projeto na IDE, como explicado a seguir…

Caso contrário, se deseja baixar o projeto do Futurepages pela própria IDE, faça o que se segue:

http://repo.futurepages.org/svn/2/trunk

       login: user

       password: fpguser

2.3. Configurando a Estrutura do Projeto

Agora, com o projeto aberto, clique no botão indicado na imagem sob a seta do mouse
(Project Structure). Veja:

Crie a biblioteca com o nome “futurepagesLib” e selecione os arquivos JARs conforme informado no arquivo readme.txt localizado na raiz da pasta LIB  do Projeto Futurepages (onde ele fala “arquivos necessários para compilar o Futurepages”).

         

                 

       

         

         

     

         

       

     
                 

       

       

       

Pronto. Configurado. Salve em “OK” para fechar a janela de Estrutura do Projeto.

Verifique o Charset do Projeto (Utilizamos todas as configurações em UTF-8).

Vá em File → Settings… (ou pelo ícone  )  e busque por File Encodings. Veja...

                 

Pronto, agora navegue pelos arquivos, verifique com F11 (Build → Make Project) se está tudo OK. Pode inclusive tentar executar uma das classes do pacote de Testes.

         

3. Projeto Web                                                              

Iremos apresentar nos tópicos a seguir como colocar um projeto Web em pleno funcionamento num servidor Tomcat embutido na IDE. A aplicação acessará um Banco de Dados MySQL (por intermédio do Hibernate). A aplicação também acessa uma pasta em Servidor de Arquivos, que pode por exemplo ser o Apache. (Sugerimos a instalação do WAMP ,que já vem com o Apache e o MYSQL - veja o Capítulo 1 deste Tutorial para mais informações).

3.1. Novo Projeto a partir do Subversion

Neste tópico apresentaremos como baixar e configurar um projeto que já está versionado e possui pelo menos as pastas SRC, WEB e LIB. Neste nosso exemplo, não há hospedado no repositório, nenhum arquivo de configuração para esta IDE. Siga os passos a seguir também para situações onde os arquivos possam estar presentes, será bem similar.

           

           

svn://futurepages.org/futurepages/alunoonline

       login: user

       password: fpguser

         

     

     

         

         

→ checking out files to… ‘(...)/Projects/alunoonline’

     

3.2. Importando o Projeto

         

       

       

       

       

3.3. Criando o Tomcat e sua configuração

         

         

         

         

               

         

3.4. Configurando o Projeto

           

       

 

       
         

                   

 

3.5. Configurando e Executando a Aplicação

   

                 

[::alunoonline::] Inicializando Aluno On Line...

[::alunoonline::] Inicializando Parâmetros...

>> Params [static]...

>> Params [static] OK

[::alunoonline::] Parâmetros OK

[::alunoonline::] File Encoding: UTF-8

[::alunoonline::] Carregando módulos...

[::alunoonline::] Módulos OK

[::hibernate::] registering 'default' schema.

[::alunoonline::] Hibernate OK

[::alunoonline::] Deploy Mode: none

[::alunoonline::] SCHEMA EXPORT - Begin

[::schema-generation::] Schema-Generation EXPORT ---- BEGIN ----

alter table escola_aluno drop foreign key FK33C6F53B854F1F77

alter table escola_turma drop foreign key FK34D6BFB54454FBF4

drop table if exists escola_aluno

drop table if exists escola_tipoturma

drop table if exists escola_turma

create table escola_aluno (id integer not null auto_increment, matricula varchar(10) not null unique, nomeCompleto varchar(255) not null, turma_id integer, primary key (id))

create table escola_tipoturma (id integer not null auto_increment, nome varchar(255) not null, primary key (id))

create table escola_turma (id integer not null auto_increment, codigo varchar(10) not null unique, nome varchar(255) not null, tipo_id integer not null, primary key (id))

alter table escola_aluno add index FK33C6F53B854F1F77 (turma_id), add constraint FK33C6F53B854F1F77 foreign key (turma_id) references escola_turma (id)

alter table escola_turma add index FK34D6BFB54454FBF4 (tipo_id), add constraint FK34D6BFB54454FBF4 foreign key (tipo_id) references escola_tipoturma (id)

[::schema-manager::] >>> schema.SchemaScripts not present.

[::schema-generation::] Schema-Generation EXPORT ---- END ----

[::alunoonline::] SCHEMA EXPORT - End

[::alunoonline::] Install Mode: on

[:install:] BEGIN...

[:install:] >>> installer Resources running...  

[:install:] >>>   Resources OK.

[:install:] module 'escola' installing...

[:install:] >>> installer EscolaInstaller running...  

[:install:] >>> installer EscolaInstaller OK

[:install:] >>> installer TiposTurma running...  

[:install:] >>> installer TiposTurma OK

[:install:] module 'escola' installed.

[:install:] >>> Examples installing...  

     ----> Installing [install.escola.Turmas]

     ----> installed in 1 secs.

     ----> Installing [install.escola.Alunos]

     ----> installed in 0 secs.

[:install:] >>> install.Examples@1a8fa0d1 installed in 0 secs.

[:install:] END.

[::alunoonline::] Install - End

[::alunoonline::] Session Listenter...:

[::alunoonline::] Session Listenter...: OK

[::alunoonline::] Iniciando criação da Taglib.

[::taglibBuilder::] Arquivo de taglib criado: E:\USER\Workspaces\Idea\Projects\alunoonline\web/WEB-INF/taglib.tld

[::alunoonline::] Taglib criada com sucesso.

[::alunoonline::] Aluno On Line inicializado.

[::appManager::] Iniciando Registro de Managers

[::appManager::] Managers Iniciados

           

               

4. Integrando o Projeto Web ao Futurepages

Como o objetivo deste tutorial é fazê-lo conhecer a fundo o funcionamento do Futurepages, nada melhor que ter acesso ao código-fonte a partir do projeto da aplicação.

É por isso, que neste tópico apresentaremos como unir os dois projetos, uma vez que já temos o Projeto do Futurepages e o projeto Web.

Em resumo, neste capítulo iremos…

4.1. Importanto o Módulo

         

         

         

4.2. Adaptando a Estrutura

           

/ant/updateFromBuild.xml

<?xml version="1.0" encoding="UTF-8"?>

<project name="updateFromBuild" default="run" basedir="../">

        <target name="run">

                <echo message="COPIANDO LIBS DE PROJETOS RELACIONADOS..."/>

                <copy file="web/WEB-INF/lib/futurepages2.jar" todir="lib"/>

        </target>

</project>

/ant/deployBuild.xml

<?xml version="1.0" encoding="UTF-8"?>

<project name="deployBuild" default="run" basedir="../">

        <path id="classpath">

                <fileset dir="lib" includes="futurepages2.jar"/>

        </path>

        <taskdef name="deploy" classname="org.futurepages.ant.DeployAntTask" classpathref="classpath"/>

        <target name="run">

                <!--para caminhos fora do projeto, utilize os atributos source e target e defina caminhos completos.-->

                <deploy />

        </target>

</project>

           

           

           

           

5. Durante o Desenvolvimento

5.1. Mapa de Caracteres

Caso tenha baixado o arquivo de configurações sugerido no início do Tutorial, utilize a IDE em plenitude e obtenha alta produtividade, aprendendo os atalhos de teclado, categorizados na tabela a seguir:

FERRAMENTA

ALT+SHIFT+O

Abre arquivo através de busca rápida.

CTRL+SHIFT+F

Busca nos arquivos das pastas do projeto.

CTRL+{SHIFT+}TAB

Move entre abas (com shift muda sentido) - se não abas abertas. Abre-se o último arquivo visto.

CTRL+F4

Fecha aba

SHIFT+ESC

Maximiza Janela do Editor de Código

CTRL+ ’

Exibe/Esconde Barra de Ferramentas

CTRL + F12

Exibe Popup com Estrutura do arquivo aberto

SHIFT+F6

Executar arquivo

CTRL+SHIFT+F5

Depurar arquivo

CTRL+SHIFT+[UP | DOWN]

Aumentar ou diminuir caixas de ferramentas localizadas na parte inferior

CTRL+SHIFT+[LEFT | RIGHT]

Aumentar ou diminuir caixas de ferramentas localizadas nas laterais

CTRL+SHIFT+E

Encontrar em qualquer lugar

Search EveryWhere

CTRL+SHIFT+G

Seleciona e busca no google

CÓDIGO-FONTE

CTRL+SHIFT+I

Otimizar/Corrigir imports do arquivo

ALT+SHIFT+F

Formatar linhas de códigos selecionadas ou todo o arquivo.

ALT+INSERT

Menu de opções “Generate” do contexto.

ALT+ENTER

Executar prováveis ações diante do contexto. (associado às Lâmpadas que aparecem)

CTRL+SPACE_BAR

Auto completar do que está sendo digitado

CTRL+F

Localizar no Arquivo

CTRL+H

Localizar e substituir no arquivo

CTRL+G

Digitar linha de código a se visitar.

ALT+SHIFT+[UP | DOWN | LEFT | RIGHT]

Move linha(s) de código no sentido escolhido

CTRL+SHIFT+[UP | DOWN]

Duplicar linha (tanto faz para cima ou para baixo).

ARQUIVOS

CTRL+SHIFT+C

(Des)Comentar linha(s) de código.

CTRL + Clique

Vai até a referência.

ALT+[LEFT | RIGHT]

Vai e volta nos últimos códigos visitados.

ALT+F7

Encontrar utilizações daquela referência sob o cursor.

SUBVERSION

ALT+ 9

Abre a caixa “Changes…”

CTRL+D

Mostrar diferenças (durante comparação)

ALT+D

Comparar arquivo com Base.

ALT+C

Comparar com revisão...

CTRL+ALT+SHIFT+PG UP

Submeter arquivo(s)

CTRL+ALT+SHIFT+PG DOWN

Atualizar arquivo(s)

CTRL+ALT+SHIFT+HOME

Resolver Conflito

CTRL+ALT+SHIFT+BKSPACE

Desfazer alterações

CTRL+ALT+SHIFT+ [UP | DOWN]

Subir/Descer modificações no arquivo.

5.2. Change Lists