分类
Java Maven Middleware Tomcat ubuntu Web

How to install idea and debugging with tomcat on xubuntu

内容纲要

How to install intellij idea community on xubuntu

本文撰写的目的在于介绍如何在Linux平台下,使用免费的社区版idea进行web项目的开发调试,撰写本文也算是对一些基础知识的回顾,欢迎大家踊跃讨论。

Basic Info

OS

#### 查看当前操作系统信息
hostnamectl | grep -v name | grep -v ID

Shows:

           Chassis: laptop
  Operating System: Ubuntu 18.04.1 LTS
            Kernel: Linux 4.15.0-33-generic
      Architecture: x86-64

Tools

  • snap – man snap

Install

Searching idea

#### 查找社区版本的idea,社区版是免费的
snap find idea | grep community

Shows:

intellij-idea-community         2018.2.2       jetbrains✓                classic  Capable & Ergonomic Java IDE

Installing idea

#### 安装社区版idea
sudo snap install intellij-idea-community

Configuration

idea安装完成后,首次打开时需要进行一些设置。如:默认的JDK设置、默认的Maven设置、默认的Scala设置等。

JDK Configure

对于Java Developer来说,JDK的设置是必不可少的。下面咱们就一起来完成JDK的设置。

Configure => Project Defaults => Project Structure 
=> Platform Settings => SDKs 
按照以上次序进到JDK设置界面,点击左上方的“+”按钮,
选择“JDK”,在弹出框选择本地JDK的安装目录,最后点击
“Apply”按钮使之生效。

Maven Configure

Configure => Project Defaults => Settings 
=> Build,Execution,Deployment => Build Tools => Maven 
按照以上次序进到Maven设置界面,点击“Maven home directory”
行尾的“...”按钮,选择本地Maven的安装目录,最后点击
“Apply”按钮使之生效。

Scala(Option)

Configure => Project Defaults => Project Structure 
=> Platform Settings => Global Libraries 
按照以上次寻进到全局“Global Libraries”设置界面,点击左上角
“+”按钮,选择“SCALA SDK”并在弹出框选择scala所在目录,
最后点击“Apply”按钮使之生效。

Tomcat Configuration

User and Group

#### 创建tomcat组
sudo groupadd tomcat
#### 创建tomcat用户,仅用于起停tomcat服务,无需登录服务器。
sudo useradd -g tomcat -d /usr/local/tomcat \
  -s /usr/sbin/nologin tomcat

Debugging Configure

#### 保证每次停服时删除临时文件,防止不同应用之间产生干扰或不可知影响。
vim /usr/local/tomcat/bin/shutdown.sh
## 将以下行添加到exec行之后
##################################################
rm -rf $PRGDIR/../temp/*
rm -rf $PRGDIR/../webapps/*
rm -rf $PRGDIR/../work/*
##################################################

#### 开启远程debugging,调试端口为9999.
#### PS: 不要添加到catalina.sh,以免停服时报错且无法真正停服。
vim /usr/local/tomcat/bin/startup.sh
## 将以下行添加到exec行之上
# From http://stackoverflow.com/questions/27655978/how-to-debug-a-tomcat-7-x-8-x-webapp-locally-with-intellij-community-free-vers
# to enable IntelliJ IDEA Community Edition Debugging Feature with Tomcat.
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999"

Application Deployment Configure

#### 应用部署配置文件
#### Replace `APP-NAME` to your application name
cat << EOF | sudo tee /usr/local/tomcat.xml
<Context
    docBase="/PROJECT-PATH/MODULE-NAME/target/BUILD-NAME"
    reloadable="true"
/>
EOF
PS: 
    PROJECT-PATH: 项目全路径
    MODULE-NAME: 待debug的web模块
    BUILD-NAME:      最终构建目录
    reloadable:           true(自动部署,开发模式方便调试)

Change Owner

#### 将tomcat目录的属主设置为tomcat用户,便于tomcat用户管理。
sudo chown tomcat. /usr/local/tomcat/ -R

Service Configure

systemd服务化管理配置。

/etc/systemd/system/tomcat.service:

[Unit]
Description=Apache Tomcat 8.5.3 DIY server
After=network.target

[Service]
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# Alias=tomcat.service

Startup or Stop

#### 启用服务,第一次必须执行
sudo systemctl enable tomcat.service
#### 启动tomcat
sudo systemctl start tomcat.service
#### 停止tomcat
sudo systemctl stop tomcat.service
#### 查看服务状态
sudo systemctl status tomcat.service

Remote Tomcat Debugging

根据tomcat配置好的远程调试端口(本文中为9999),在idea中新建一个Remote配置用于对应部署的项目进行调试。

Remote

Run => Edit Configurations => Add Remote => Port(Our tomcat setting) => Choice module => Apply => Startup tomcat in Terminal => Run Remote Debugger in IDEA

参照以上次序新建Remote调试配置即可,注意端口设置和web-module设置。tomcat服务起好之后即可以debug模式启动对应的Remote进行远程调试。

Have fun~

Reference

  1. How to debug a Tomcat 7.x/8.x webapp locally with IntelliJ Community (free) version in Linux?
  2. Tomcat Web Application Deployment
  3. The Context Container

声明:
  未经特别说明,本站Blog均采用署名-非商业性使用-禁止演绎 2.5 中国大陆授权。任何违反本协议的行为均属于非法行为。如需非商业性转载,请保留署名。如需商业性转载出版,请直接和联系。

发表评论

邮箱地址不会被公开。 必填项已用*标注