O objetivo deste post é explicar os procedimentos de configuração do ambiente de desenvolvimento Java Web no Linux na distro Debian e Ubuntu.
openJDK
Usando PPA
Adicionar o repositório openJDK para facilitar o gerenciamento de versões
$ sudo add-apt-repository ppa:openjdk-r/ppa
Atualizar a lista de repositório
$ sudo apt-get update
Instalação da versão openJDK 8
$ sudo apt-get install openjdk-8-jdk
Substitua o 8 pela versão outra versão do openJDK que desejar, como 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
Pelo repositório oficial da distro
Outra opção de instalação do openJDK, caso não costuma instalar pacotes com PPA, mas sim apenas no repositório oficial da distro, então é descrito nessa seção.
$ sudo apt install default-jdk
Irá instalar a versão corrente do openJDK disponível no repositório oficial da distro Debian/Ubuntu
Caso por necessidade do projeto precise instalar o openJDK 8, segue os procedimentos
$ sudo apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common
$ wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
$ sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
$ sudo apt install adoptopenjdk-8-hotspot
Verificar a versão
$ java -version
Alterar a versão do openJDK default no PATH
$ sudo update-alternatives --config java
Irá listar as versões openJDK disponíveis no sistema e selecione a versão openJDK que deseja utilizar como default
Definir o caminho absoluto do openJDK default na variável JAVA_HOME
$ sudo vim /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
ESC + :x (salvar e sair do editor Vim)
Testar
$ source /etc/environment
$ echo $JAVA_HOME
Apache Maven
Download do Apache Maven
O Apache Maven é um gerenciador de bibliotecas e suas dependências do projeto Java. O Maven mantém o arquivo pom.xml para centralizar as bibliotecas que o projeto irá precisar.
Até a data de publicação deste post, a versão atual do Maven é 3.8.2, caso por eventual motivo desejar obter uma versão anterior ou dependendo da data que estiver seguindo esse post, acesse a URL https://downloads.apache.org/maven/ e escolha a versão mais recente.
$ wget https://downloads.apache.org/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz -P /tmp
$ sudo tar -xzvf /tmp/apache-maven-3.8.2-bin.tar.gz -C /opt
Configuração do ambiente para o Maven
Para que o Maven funcione corretamente, precisa configurar as variáveis de ambiente. Isso inclui: JAVA_HOME, M3_HOME, MAVEN_HOME, PATH
Adicione o conteúdo abaixo no arquivo /etc/profile.d/maven.sh
$ sudo vim /etc/profile.d/maven.sh
export JAVA_HOME=/usr/lib/jvm/default-java
export M3_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=$M2_HOME/bin:$PATH
ESC +:x (salvar e sair do editor Vim)
Permissão ao script /etc/profile.d/maven.sh
$ sudo chmod +x /etc/profile.d/maven.sh
Load do script setado nas variáveis de ambiente
$ source /etc/profile.d/maven.sh
Download e configuração do Apache Tomcat
Criar um grupo e usuário no Tomcat sem acesso ao terminal
$ sudo groupadd tomcat
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
De forma análoga que foi comentado na versão do Maven, segue o mesmo para versão do Tomcat. Até a data de publicação deste post, a versão recente do Tomcat é 9.0.53.
$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz
$ sudo tar -xzvf apache-tomcat-9.0.53.tar.gz -C /opt --strip-components=1
$ sudo chgrp -R tomcat /opt/tomcat
$ sudo chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/
$ sudo chmod -R g+r /opt/tomcat/conf
$ sudo chmod g+x /opt/tomcat/conf
$ sudo vim /etc/systemd/system/tomcat.service
SystemD Arquivo tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_Home=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS.awt.headless=true -Djava.security.egd=file:/dev/v/urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
ESC +:x (salvar e sair do editor Vim)
$ sudo systemctl daemon-reload
Configurar a interface de gerenciamento Tomcat
Edite o arquivo tomcat-users.xml
$ sudo vim /opt/tomcat/conf/tomcat-users.xml
Arquivo tomcat-users.xml simplificado
<tomcat-users . . .>
<tomcat-users . . .>
>user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
Gerenciador de host no Tomcat: /opt/tomcat/webapps/manager/META-INF/context.xml
Iniciar/Reiniciar o serviço Tomcat
$ sudo systemctl start tomcat
$ sudo systemctl restart tomcat
Acesso gerenciador Tomcat pela interface web
http://IP:8080/managerFeito!