1. 准备Java开发环境
在CentOS上构建Java项目前,需先安装JDK并配置环境变量。推荐使用OpenJDK(如java-11-openjdk-devel
),通过yum
包管理器安装:
sudo yum update -y
sudo yum install java-11-openjdk-devel -y
安装完成后,验证Java版本:
java -version # 确认Java运行时环境
javac -version # 确认Java编译器
配置全局环境变量,编辑/etc/profile
文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
保存后执行source /etc/profile
使配置生效。
2. 安装构建工具(Maven/Gradle)
Java项目常用Maven(基于pom.xml
)或Gradle(基于build.gradle
)管理依赖与构建流程。以Maven为例,通过yum
安装:
sudo yum install maven -y
验证安装:
mvn -version # 确认Maven版本及Java环境
若使用Gradle,需先安装epel-release
,再通过yum
安装:
sudo yum install epel-release -y
sudo yum install gradle -y
验证Gradle安装:
gradle -v # 确认Gradle版本
也可手动下载Gradle压缩包,解压至/opt
目录并配置环境变量。
3. 创建或导入Java项目
maven-archetype-quickstart
):mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
生成的项目结构包含src/main/java
(主代码)、src/test/java
(测试代码)、pom.xml
(配置文件)。pom.xml
或build.gradle
的目录)。4. 编译与打包项目
mvn clean package
该命令会清理target
目录、下载依赖(从Maven Central)、编译源代码、运行测试,并将项目打包为可执行的JAR/WAR文件(位于target
目录,如my-app-1.0-SNAPSHOT.jar
)。gradle clean build
类似地,Gradle会清理build
目录、下载依赖、编译代码、运行测试,生成JAR/WAR文件(位于build/libs
目录,如my-java-project.jar
)。5. 部署与运行项目
Main-Class
),直接通过java
命令运行:java -jar target/my-app-1.0-SNAPSHOT.jar
target/my-webapp.war
)复制到Tomcat的webapps
目录:scp target/my-webapp.war root@your_server_ip:/opt/apache-tomcat-9.0.52/webapps/
启动Tomcat(若未启动):/opt/apache-tomcat-9.0.52/bin/startup.sh
访问应用:http://your_server_ip:8080/my-webapp
(my-webapp
为WAR文件名去掉.war
后缀)。6. 可选:Docker容器化部署
若需将项目部署到Docker容器,可创建Dockerfile
(位于项目根目录):
FROM openjdk:11-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/my-app-1.0-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
构建Docker镜像:
docker build -t my-java-app .
运行容器:
docker run -p 8080:8080 my-java-app
通过http://your_server_ip:8080
访问应用。
注意事项
java-11-openjdk-devel
)。pom.xml
中的maven-compiler-plugin
版本)。sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload