---
# System prepended metadata

title: Documentação Máquina Virtual Qintess
tags: [Qintess]

---

# Documentação Máquina Virtual Qintess
![image](https://hackmd.io/_uploads/r15sc778A.png)

**Colaborador:** Edson Belém de Souza Junior
**Matrícula:** re047197



## Linguagem de Programação 

### java 8, PHP 7.2,  Laravel 6., nodeJs como recursos para o  Back end
.
.
.

## Front-End

# Instalação do ReactJs -- Site responsivo
**Instalação global na máquina:** 
Clicar na tecla de Windows e digitar `cmd`, abrir como **administrador**
![image](https://hackmd.io/_uploads/B1p4DSXL0.png)

Ao abrir a janela do cmd. digitar o comando:
```
npm install -g create-react-app
```
![image](https://hackmd.io/_uploads/ryw6PBm8A.png)

Instalado!
![image](https://hackmd.io/_uploads/H1Yx_rXUC.png)

## Para criar um projeto em Reactjs
Abrir uma janela de cmd dentro do diretorio desejado e digitar o comando:
```
npx create-react-app nome_do_projeto
```
![image](https://hackmd.io/_uploads/Skk5_rmLR.png)

Aguardar criar e baixar as dependencias
![image](https://hackmd.io/_uploads/B1g3YSmIA.png)

Entrar no diretorio do projeto e iniciar o projeto com o comando:
```
npm start
```

Aguardar abrir o browser. 
*Obs: O reactjs usar a porta 3000 para rodar o projeto.*
![image](https://hackmd.io/_uploads/SyzU5SmIC.png)
*Projeto iniciado com sucesso!*











# Instalação do ReactNative -- Mobile
**Instalação global na máquina:** 
Clicar na tecla de Windows e digitar `cmd`, abrir como **administrador**
![image](https://hackmd.io/_uploads/B1p4DSXL0.png)

Ao abrir a janela do cmd. digitar o comando:

```
npm install -g react-native-cli
```
![image](https://hackmd.io/_uploads/B1ds5SmUA.png)

## Para criar um projeto usando Expo:
```
npm i -g expo-cli
npx create-expo-app projetoUsers
```
![image](https://hackmd.io/_uploads/B18splDUC.png)
.

Confirmar
![image](https://hackmd.io/_uploads/r1mzAxvI0.png)
.

Projeto criado!
![image](https://hackmd.io/_uploads/rJmjCxPIR.png)
.

Para rodar:
- cd projetoUsers
- code . (Para abrir o projeto com Visual Code)
- npm run android
- npm run ios # you need to use macOS to build the iOS project - use the Expo app if you need to do iOS development without a Mac
- npm run web


























##  Banco de Dados 
. 
### Conforme os requisitos Oracle 11 G (Free), Postgree (Free) 

#### Não tenho o costume de inserir software pago



## Gerenciador de Pacote
- gradle versão 6.4 e 6.7 ( fase de teste )


## Fase de Configuração e testes
### Configuração nas dependências Java , Struts2, Junit 4, Spring-MVC, Hibernate,  jwt Token para autenticação do Sistema, patterns Filter com Altenticações de Segurança, apache tomcat (inserindo as autenticações e usuários) e registrando os logs.


# Instalações:
:::success
### Ambiente de Dev, Esse é um Documento em constante atualização ao entrar no arquivo é só pressionar atualizar a página que está acessando está em constante crescimento e atualização
:::

.
.
.

## IDEs para Java

### Vscode (eu estou utilizando para gerar um template que não irá precisar de Ide para rodar) caso o programador queira rodar no vscode ele também conseguirá, Eclipse 2019, e o Eclipse Mars, InteliJ Comunity
### Nenhum software pago até o momento.


### O mais importante na Instalação do Java é sempre mudar na variável de ambiente a versão se possível.
.
.
.

### Está sendo utilizado dois sitemas o Windows para quem coda com máquina Windows e Linux Ubuntu 20


## Java JDK 8u202 instalação

![image](https://hackmd.io/_uploads/HJN4sTeUR.png)

Clicar no botão ==Next==
![image](https://hackmd.io/_uploads/S1cfs6x80.png)

Clicar no botão ==Next==
![image](https://hackmd.io/_uploads/H1ZUoal80.png)

Aguardar instalar
![image](https://hackmd.io/_uploads/rJlFi6lLR.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/HJY9j6xLR.png)

Clicar no botão ==Próximo==
![image](https://hackmd.io/_uploads/Byy6sag80.png)

Clicar no botão ==Aguardar==
![image](https://hackmd.io/_uploads/rymJ36xUA.png)

Clicar no botão ==Close==
![image](https://hackmd.io/_uploads/SkIM3agLA.png)

### Adicionar a JDK na variavel de ambiente

Clicar na tecla do ==Windows==, digitar: `Editar as variáveis de ambiente do sistema`
![image](https://hackmd.io/_uploads/B11Fp6e8R.png)

Clicar no botão ==Variáveis de Ambiente==
![image](https://hackmd.io/_uploads/Hkxj6alI0.png)

Na área de variáveis do sistema, clicar no botão ==Novo==
![image](https://hackmd.io/_uploads/H11ZJCx8C.png)

Criar a variável `JAVA_HOME`
![image](https://hackmd.io/_uploads/SkFd1AlI0.png)

Clicar no botão ==Procurar no Diretório== para indicar onde está instalado o JDK e clicar no botão ==OK==
![image](https://hackmd.io/_uploads/SkQkxRg8R.png)

Depois de selecionado o diretório, clicar no botão ==OK==
![image](https://hackmd.io/_uploads/SkS7lReUC.png)

Variável de sistema criada!
![image](https://hackmd.io/_uploads/HywhgCgU0.png)

Na área de variaveis do sistema, clicar na linha Path e clicar no botão ==Editar==
![image](https://hackmd.io/_uploads/rJewe0gUA.png)

Clicar no botão Novo para adicionar a nova variavel ao ==Path== do sistema
![image](https://hackmd.io/_uploads/Hk87bAlL0.png)

Digitar o nome da variável: `%JAVA_HOME%\bin` e clicar no botão ==OK==
![image](https://hackmd.io/_uploads/HJWFbAeLC.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/rkjiZAxLR.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/BybCW0e8A.png)

## Para verificar a versão do Java

Clicar na tecla de `Windows + R`, digitar `cmd`
![image](https://hackmd.io/_uploads/HyHu4cbLR.png)

Abrirá um terminal, digitar o comando `java -version`
![image](https://hackmd.io/_uploads/H1oxBq-8C.png)

# Instalação do Eclipse Mars

Ir no site: https://www.eclipse.org/downloads/packages/release/mars/r/eclipse-ide-java-ee-developers e fazer o download.
*Obs: É preciso ter um JDK instalado na máquina.*
![image](https://hackmd.io/_uploads/rkOwv5ZUA.png)

Descompactar o arquivo
![image](https://hackmd.io/_uploads/B1zZd5bIC.png)

Aguardar descompactar
![image](https://hackmd.io/_uploads/rkcouqZLC.png)

Entrar na pasta descompactar e clicar no icone do Eclipse
![image](https://hackmd.io/_uploads/r10GYq-IR.png)

Selecionar um diretório para criar o workspace
![image](https://hackmd.io/_uploads/H1e7ccZLR.png)

Aguardar abrir o programa
![image](https://hackmd.io/_uploads/B11Pc9ZIR.png)


# Instalação do Intellij Community
Ir no site: https://www.jetbrains.com/pt-br/idea/download/?section=windows e fazer o download
![image](https://hackmd.io/_uploads/Hy_Qi5bUC.png)

Depois de baixado o aplicativo, clicar e instalar.
![image](https://hackmd.io/_uploads/rJt8TqbI0.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/rkV9a5Z8R.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/BJTsTq-IA.png)

Marcar as opções marcadas na imagem para facilitar a abertura de projetos ja existentes, clicar no botão Next
![image](https://hackmd.io/_uploads/Hk4g0q-8C.png)

Clicar no botão Install
![image](https://hackmd.io/_uploads/H1tN0cZLR.png)

Aguardar instalar
![image](https://hackmd.io/_uploads/ry3aCcbU0.png)

Reiniciar a máquina
![image](https://hackmd.io/_uploads/ry1YyoZ8C.png)

# Instalação do Oracle XE 11g
Descompactar o arquivo
![image](https://hackmd.io/_uploads/HymfJn-IC.png)

Entrar no diretório descompactado `DISK1` e clicar no icone de Setup.exe
![image](https://hackmd.io/_uploads/rJ0KJhWIA.png)

Aguardar instalar
![image](https://hackmd.io/_uploads/rk1pynbIR.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/Hkqyg3-I0.png)

Clicar em aceitar, clicar no botão Next
![image](https://hackmd.io/_uploads/rJPHx3bI0.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/HkEOxnW8A.png)

Digitar uma senha (Usei root1), clicar no botão Next
![image](https://hackmd.io/_uploads/HyrBGhWU0.png)

Clicar no botão Install
![image](https://hackmd.io/_uploads/SJEPznbLR.png)

Aguardar a instalação
![image](https://hackmd.io/_uploads/Hk-Yf2-8A.png)

Clicar no botão Finish
![image](https://hackmd.io/_uploads/ryLK7n-8C.png)

## Para iniciar o Oracle XE
Clicar na tecla do Windos e digitar `run sql`
![image](https://hackmd.io/_uploads/Bkx8nBnb8C.png)

Aguardar abrir
![image](https://hackmd.io/_uploads/rJ-IUhZIA.png)

# Instalação do SQL Developer
Descompactar o arquivo de instalação
![image](https://hackmd.io/_uploads/Skpx_nbLR.png)

Clicar no arquivo executável,
![image](https://hackmd.io/_uploads/HJVb2AW80.png)

Aguardar abrir
![image](https://hackmd.io/_uploads/SkMQhCZI0.png)

Clicar no botão Não para não importar as preferências
![image](https://hackmd.io/_uploads/BkSL3RWU0.png)

Aguardar 
![image](https://hackmd.io/_uploads/rymd2RbIA.png)

Clicar em desmarcar o envio de infromações, clicar no botão OK
![image](https://hackmd.io/_uploads/BkO52CbU0.png)

SQL Developer iniciado!
![image](https://hackmd.io/_uploads/By0ThAZIC.png)

# Instalação do Gradle 6.7.1
Ir no site: https://gradle.org/releases/ e fazer download do arquivo binary-only
![image](https://hackmd.io/_uploads/Byf3A0W8R.png)

Descompartilhar o arquivo
![image](https://hackmd.io/_uploads/SyPZJkz8A.png)

Copiar a pasta Gradle 6.7.1 para C:\Program Files
![image](https://hackmd.io/_uploads/SJS5ykzU0.png)

## Adicionar o gradle à variável de ambiente

Clicar na tecla do ==Windows==, digitar: `Editar as variáveis de ambiente do sistema`
![image](https://hackmd.io/_uploads/B11Fp6e8R.png)

Clicar no botão ==Variáveis de Ambiente==
![image](https://hackmd.io/_uploads/Hkxj6alI0.png)

Na área de variáveis do sistema, clicar no botão ==Novo==
![image](https://hackmd.io/_uploads/H11ZJCx8C.png)

Criar a variável `GRADLE_HOME`
![image](https://hackmd.io/_uploads/ByMGWJM8A.png)

Clicar no botão ==Procurar no Diretório== para indicar onde está instalado o JDK e clicar no botão ==OK==
![image](https://hackmd.io/_uploads/ryzBbkM8C.png)

Depois de selecionado o diretório, clicar no botão ==OK==
![image](https://hackmd.io/_uploads/B14_Z1fUR.png)

Variável de sistema criada!
![image](https://hackmd.io/_uploads/ByU2WyfLA.png)

Na área de variaveis do sistema, clicar na linha Path e clicar no botão ==Editar==
![image](https://hackmd.io/_uploads/rJewe0gUA.png)

Clicar no botão Novo para adicionar a nova variavel ao ==Path== do sistema
![image](https://hackmd.io/_uploads/Hk87bAlL0.png)

Digitar o nome da variável: `%GRADLE_HOME%\bin` e clicar no botão ==OK==
![image](https://hackmd.io/_uploads/BJ4XfJGUA.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/rkjiZAxLR.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/BybCW0e8A.png)

## Para verificar a versão do Gradle

Clicar na tecla de `Windows + R`, digitar `cmd`
![image](https://hackmd.io/_uploads/HyHu4cbLR.png)

Abrirá um terminal, digitar o comando `gradle -version`
![image](https://hackmd.io/_uploads/HkqFz1GUA.png)



## Criação para a Variavel de Ambiente para o Tomcat
### Seu nome é CATALINA_HOME

![image](https://hackmd.io/_uploads/B14H9H7IA.png)




### Criação de Ambiente de Programação ir para o diretório do seu projeto e digitar
```cmd=
gradle init
```

## Gradle Configuração com Gradle init

 
## Ambiente  Via gradle nosso Caso

### gradle init#

![image](https://hackmd.io/_uploads/r1UKWXyLR.png)

### Dicas
- Digitei no Diretório na Programação
-  gradle init
-  pressionar 2 de application
-  pressionar 3 java
-  pressionar 1 para groovy
-  pressionar 1 para junit 4.0 
- todo esse trabalho sempre no diretório que seu programa estiver configurado, é bom ter variável de ambiente para o gradle também
- Segue as minhas variáveis de ambiente
- 



### Na maquina Virtual eu configurei o gralde 6.7, na minha máquina versão 6.4
![image](https://hackmd.io/_uploads/HkA1cmQI0.png)


## Tomcat 9.0 Linux Ubuntu

## sudo systemctl stop jboss.service


![image](https://hackmd.io/_uploads/BJTkjG7IR.png)


## Tomcat 9.0 no Windows
#### Tomcat  9.0 foi uma recomendação do Felipe

- Para rodar o tomcat como usuario 
- depois de start no tomcat linux UBUNTU (Caso alguém code com ubuntu)

![image](https://hackmd.io/_uploads/rkn5PmQUA.png)


- No windows
##  C:\Users\edson\tomcat\tomcat9\bin



### Caminho do arquivo para o start no tomcat


![image](https://hackmd.io/_uploads/HJWPgXQUR.png)





## Configurar o tomcat-user.xml
![image](https://hackmd.io/_uploads/ByB0UmmIR.png)



- Inserir a configuração do usuario admin para ter permissões aos recursos de gerenciamento do tomcat ...
- 
```java=
<?xml version="1.0" encoding="UTF-8"?>
 
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
 
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
 
    <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
</tomcat-users>
```




![image](https://hackmd.io/_uploads/HJLl8QX8A.png)

### Log no Apache Tomcat 9.0


#### caminho exato

![image](https://hackmd.io/_uploads/H1EKeVQLA.png)


#### logging.properties

#### apachetomcat\conf\logging.properties
```cmd=

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

## Logs

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

# Uncomment the following lines to enable more detailed logging for specific components.
#org.apache.catalina.util.LifecycleBase.level = FINE
#org.apache.jasper.compiler.TldLocationsCache.level = FINE
#org.apache.coyote.http2.level = FINE
#org.apache.tomcat.websocket.level = FINE


 
```

![image](https://hackmd.io/_uploads/H1aQVNm8C.png)


## Log

### logging-info.html
```html=
<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <title>Configuração de Log do Tomcat</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        h1, h2 { color: #2A6EBB; }
        table { width: 100%; border-collapse: collapse; margin-top: 20px; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #f2f2f2; }
        code { background-color: #f4f4f4; padding: 2px 5px; border-radius: 5px; }
        pre { background-color: #f4f4f4; padding: 10px; border-radius: 5px; white-space: pre-wrap; word-wrap: break-word; }
    </style>
</head>
<body>
    <h1>Documentação da Configuração de Log do Apache Tomcat</h1>
    <p>Esta página documenta as configurações de log utilizadas no servidor Tomcat, incluindo níveis de log, handlers e formatos.</p>

    <h2>Handlers de Log</h2>
    <table>
        <thead>
            <tr>
                <th>Handler</th>
                <th>Nível</th>
                <th>Diretório</th>
                <th>Prefixo</th>
                <th>Máximo de Dias</th>
                <th>Codificação</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1catalina.org.apache.juli.AsyncFileHandler</td>
                <td>FINE</td>
                <td>${catalina.base}/logs</td>
                <td>catalina.</td>
                <td>90</td>
                <td>UTF-8</td>
            </tr>
            <tr>
                <td>2localhost.org.apache.juli.AsyncFileHandler</td>
                <td>FINE</td>
                <td>${catalina.base}/logs</td>
                <td>localhost.</td>
                <td>90</td>
                <td>UTF-8</td>
            </tr>
            <tr>
                <td>3manager.org.apache.juli.AsyncFileHandler</td>
                <td>FINE</td>
                <td>${catalina.base}/logs</td>
                <td>manager.</td>
                <td>90</td>
                <td>UTF-8</td>
            </tr>
            <tr>
                <td>4host-manager.org.apache.juli.AsyncFileHandler</td>
                <td>FINE</td>
                <td>${catalina.base}/logs</td>
                <td>host-manager.</td>
                <td>90</td>
                <td>UTF-8</td>
            </tr>
            <tr>
                <td>java.util.logging.ConsoleHandler</td>
                <td>FINE</td>
                <td>N/A</td>
                <td>N/A</td>
                <td>N/A</td>
                <td>UTF-8</td>
            </tr>
        </tbody>
    </table>

    <h2>Configuração Específica de Logs</h2>
    <pre>
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

 
    </pre>
</body>
</html>

```










.
.
.
# Instalação do NodeJs 18.20.3
Ir no site https://nodejs..rg/en/download/prebuilt-binaries

Baixar a versão 18 do prebuilt binary
![image](https://hackmd.io/_uploads/ByK-xNX8R.png)

Descompactar o arquivo.
![image](https://hackmd.io/_uploads/S1AUg4XL0.png)

No diretório `C:\Program Files` criar umas pasta chamada `Node`
Copiar a pasta `node-v18.20.3-win-x64` para `C:\Program Files\Node`
![image](https://hackmd.io/_uploads/Bk-Rg4XU0.png)



## Adicionar o Nodejs a variável de ambiente

Clicar na tecla do ==Windows==, digitar: `Editar as variáveis de ambiente do sistema`
![image](https://hackmd.io/_uploads/B11Fp6e8R.png)

Clicar no botão ==Variáveis de Ambiente==
![image](https://hackmd.io/_uploads/Hkxj6alI0.png)

Na área de variáveis do sistema, clicar no botão ==Novo==
![image](https://hackmd.io/_uploads/H11ZJCx8C.png)

Criar a variável `NODE_HOME`
![image](https://hackmd.io/_uploads/SJLefNXIR.png)









## Adicionar o gradle à variável de ambiente

Clicar na tecla do ==Windows==, digitar: `Editar as variáveis de ambiente do sistema`
![image](https://hackmd.io/_uploads/B11Fp6e8R.png)

Clicar no botão ==Variáveis de Ambiente==
![image](https://hackmd.io/_uploads/Hkxj6alI0.png)

Na área de variáveis do sistema, clicar no botão ==Novo==
![image](https://hackmd.io/_uploads/H11ZJCx8C.png)

Criar a variável `NODE_HOME` 
![image](https://hackmd.io/_uploads/SkPmGEXU0.png)


Clicar no botão ==Procurar no Diretório== para indicar onde está instalado o **Nodejs** e clicar no botão ==OK==
![image](https://hackmd.io/_uploads/HJQwzE78A.png)

Depois de selecionado o diretório, clicar no botão ==OK==
![image](https://hackmd.io/_uploads/H1-jMV78A.png)

Variável de sistema criada!
![image](https://hackmd.io/_uploads/SkjnGNQL0.png)

Na área de variaveis do sistema, clicar na linha Path e clicar no botão ==Editar==
![image](https://hackmd.io/_uploads/rJewe0gUA.png)

Clicar no botão Novo para adicionar a nova variavel ao ==Path== do sistema
![image](https://hackmd.io/_uploads/Hk87bAlL0.png)

Digitar o nome da variável: `%NODE_HOME%\bin` e clicar no botão ==OK==
![image](https://hackmd.io/_uploads/Sk-b7478A.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/rkjiZAxLR.png)

Clicar no botão ==OK==
![image](https://hackmd.io/_uploads/BybCW0e8A.png)

## Para verificar a versão do Nodejs

Clicar na tecla de `Windows + R`, digitar `cmd`
![image](https://hackmd.io/_uploads/HyHu4cbLR.png)

Abrirá um terminal, digitar o comando `node -version`
![image](https://hackmd.io/_uploads/Bk8PX47UA.png)


# Instalação do PostgreSql 15.7
Ir no site https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Fazer o download do instalador
![image](https://hackmd.io/_uploads/rJMXVNXLA.png)

Executar o instalador (2 cliques)
![image](https://hackmd.io/_uploads/BJldVEm80.png)

Aguardar iniciar e clicar no botão Next
![image](https://hackmd.io/_uploads/H1qa4EmIA.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/S19JSNQ8R.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/H1axBNXLA.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/S1cmr4QIR.png)

Digitar uma senha (Usei `root1`), digitar novamente e clicar no botão Next
![image](https://hackmd.io/_uploads/BJRKr4X80.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/rJQsBVXUR.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/rJd3BEX8R.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/Sk1RHEm8C.png)

Clicar no botão Next
![image](https://hackmd.io/_uploads/HJLJ8N7U0.png)

Aguardar instalar
![image](https://hackmd.io/_uploads/SyMMUNQIR.png)

Desmarcar a caixa de seleção e clicar no botão Finish
![image](https://hackmd.io/_uploads/r1bcwE7LA.png)

## Para iniciar o PostgreSql
Clicar ne tecla de Windows e digitar `psql`
![image](https://hackmd.io/_uploads/Hyxb_E78R.png)

Clicar na tecla Enter até chegar no campo de digitar a senha
![image](https://hackmd.io/_uploads/Hyj4OE780.png)

Digitar a senha e entrar no banco
![image](https://hackmd.io/_uploads/H1TI_V78R.png)



##  Postgre Manual

```cmd=

# criacao de uma base de dados
create database  copergas;

# conexao na base de dados

\c copergas 

# criacao da tabela

create table usuario(id serial primary key,
 name varchar (255), email varchar (255) unique,
 password varchar (255), status varchar (255), token
 varchar (255));
 
 # mostrar a tabela criada (describe)
 \ d usuario
 


 # mostrar a estrura da tabela
 \dt 

```
### descricao da tabela
![image](https://hackmd.io/_uploads/BkOeFBQLR.png)
 
 
### mostra todas as tabelas e sequencias criadas

![image](https://hackmd.io/_uploads/Sy-0dS7UC.png)


### Criacao da Variável de Ambiente do PHP 7.4

![image](https://hackmd.io/_uploads/HJkT9rm8C.png)



### PHP Instalado na Variável de Ambiente Laravel

:::danger
Não posso instalar nenhum programa xamp, ou wamp
:::


![image](https://hackmd.io/_uploads/rk6SjBQI0.png)



## Dica
### Todos os Programas todos os bancos de dados devem sem desligados e desativados até seu uso novamente



## Compatibilidade da versão do gradle

```cmd=
gradle wrapper --gradle-version 6.4
```

# Instalação Jenkins 2.452
![image](https://hackmd.io/_uploads/S1jYO3vSR.png)

Ir no site para baixar
https://www.jenkins.io/download/#downloading-jenkins

Baixar o instalador
![image](https://hackmd.io/_uploads/B1lx44uUR.png)
.
Clicar para instalar
![image](https://hackmd.io/_uploads/H1YGVN_UC.png)
.
Clicar no botão Next
![image](https://hackmd.io/_uploads/HJ7NEEOI0.png)
.
Clicar no botão Next
![image](https://hackmd.io/_uploads/SkuSEN_U0.png)
.
Marcar run service as LocalSystem, clicar no botão Next
![image](https://hackmd.io/_uploads/BJ59wV_8R.png)
.
Selecionar uma porta diferente da que o Oracle utiliza. Digitei a 8084.
![image](https://hackmd.io/_uploads/H1E6v4uUR.png)
.
Clicar no botão para testar a porta, clicar no botão Next
![image](https://hackmd.io/_uploads/HJDqdN_IC.png)
.
Selecionar onde está a pasta do JDK 11, clicar no botão Next
![image](https://hackmd.io/_uploads/Sk1ytEuIA.png)
.
Clicar no botão Next
![image](https://hackmd.io/_uploads/ry-zF4OIC.png)
.
Clicar no botão Install
![image](https://hackmd.io/_uploads/rJeHY4_8R.png)
.
Aguardar a instalação e clicar no botão Finish
![image](https://hackmd.io/_uploads/S16dK4uLR.png)
.
Ao rodar o Jenkins pela primeira vez http://localhost:8084/, ele pedirá a senha inicial.
![image](https://hackmd.io/_uploads/H1cUcVOL0.png)
.
Seguindo o caminho indicado: `C:\ProgramData\Jenkins\.jenkins\secrets`
![image](https://hackmd.io/_uploads/Hypc94d8C.png)
.
Abri o arquivo com o bloco de notas e copiar a senha
![image](https://hackmd.io/_uploads/Sy90cEOU0.png)
.
Colar a senha e clicar no botão Continuar
![image](https://hackmd.io/_uploads/SkgZi4_IA.png)
.
Jenkins instalado com sucesso! ⭐Clicar em Install suggested plugins
![image](https://hackmd.io/_uploads/H1rHoVdIC.png)
.
Aguardar a instalação
![image](https://hackmd.io/_uploads/rkVehEOIA.png)
.
Vamos criar o usuario:
* username: Qintess 
* senha: root1 
* Full name: qintess
* E-mail: re047197@qintess.com

Clicar no botão Save and continue
![image](https://hackmd.io/_uploads/B1psTNd8A.png)
.
Clicar no botão save and finish
![image](https://hackmd.io/_uploads/HJR_04_IR.png)
.
Start using Jenkins
![image](https://hackmd.io/_uploads/H1qD1SOUC.png)
.
Jenkins iniciado com sucesso! ⭐
![image](https://hackmd.io/_uploads/HkSn1BdI0.png)
.

## Integração do Github com o Jenkins

Criar um repositorio para o projeto.
Subir o projeto para lá.
Vou usar esse repositorio xomo exemplo: https://github.com/usuqintess/projetoreactnative

### Gerar um Token de Acesso
Vá para **Settings** no GitHub.
![image](https://hackmd.io/_uploads/Hye3V9u8R.png)

Vá para **Developer settings** > **Personal access tokens > Token classic**.
![image](https://hackmd.io/_uploads/BkMVHqu8R.png)

Clique em **Generate new token**.
![image](https://hackmd.io/_uploads/rkqirq_L0.png)

**Generate new token classic**
![image](https://hackmd.io/_uploads/BJfe8cuLR.png)

Dê um nome para o token criado: `Jenkins Integration Token`

Selecionar a expiração: `No Expiration`

Selecione os escopos necessários, como repo para acesso ao repositório.


![image](https://hackmd.io/_uploads/Sykg0sOI0.png)
.
![image](https://hackmd.io/_uploads/BJW_AodIA.png)
.
![image](https://hackmd.io/_uploads/Bym2Ao_8A.png)
.
Descer a tela, clicar no botão Generate Token 



Foi gerado o token! ⭐
Copie o token gerado, pois você precisará dele para configurar o Jenkins.
:::info
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
:::

:::success
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
:::
![image](https://hackmd.io/_uploads/H1fry3u8C.png)
.





## Configurar o Job no Jenkins
http://localhost:8084/

Clicar em **create a job**
![image](https://hackmd.io/_uploads/HJ74u15UA.png)
.
Digite o nome do Job: `projetoNativo`, clicar em **pipeline** e clicar em OK
![image](https://hackmd.io/_uploads/rJeaukqIR.png)
.
Na proxima tela, marque a caixa **GitHub project**.
No campo **Project URL**, insira a URL do seu repositório GitHub: https://github.com/usuqintess/projetoreactnative
![image](https://hackmd.io/_uploads/HJzyRycU0.png)
.

Descer a tela até Pipeline -> Definition, Selecionar **Pipeline ipt from SCM**. Em SCM, selecionar **Git**. Em **Repository URL**, insira a URL do seu repositório GitHub.
![image](https://hackmd.io/_uploads/BytLJe58A.png)
.

* No campo Definition, selecione **Pipeline script from SCM**. 
* Em **SCM**, selecione **Git**.
* Em **Repository URL**, insira a URL do repositório GitHub.
* Clique em **Add** e selecione Jenkins.
![image](https://hackmd.io/_uploads/ryg-rlqLR.png)
.

Irá abrir uma janela Jenkins Credentials Provider: Jenkins, Add credentials. 
* Em **Domain**, deixar Global Credentials (unrestricted)
* Em **Kind**, selecione **Secret text**. 
* Em **Scope**, selecione Global(Jenkins, node, items, all)
* No campo **Secret**, cole o **token de acesso pessoal do GitHub**. 
* Dê um **ID** para a credencial, como **github-token**.
* Preencha **Description** como **GitHub Personal Access Token for Jenkins**. Clique no botão Add.
![image](https://hackmd.io/_uploads/r15bexqIC.png)
.


* Em Branch Specifier, insira a branch que você quer usar, por exemplo, */main.
* No campo Script Path, insira o caminho do seu Jenkinsfile. Se ele estiver na raiz do repositório, pode ser simplesmente Jenkinsfile.

```pipeline {
    agent any
    environment {
        GITHUB_TOKEN = credentials('github-pat')
    }
    stages {
        stage('Checkout') {
            steps {
                script {
                    git url: 'https://github.com/usuqintess/projetoreactnative.git', 
                        branch: 'main', 
                        credentialsId: "${env.GITHUB_TOKEN}"
                }
            }
        }
        stage('Build') {
            steps {
                bat 'npm install'
            }
        }
        stage('Test') {
            steps {
                bat 'npm test -- --ci --reporters=jest-junit'
            }
        }
        stage('Archive Test Results') {
            steps {
                junit 'jest-junit.xml'
            }
        }
    }
    post {
        always {
            archiveArtifacts artifacts: '**/target/*.jar', allowEmptyArchive: true
        }
    }
}
```






























