在Linux环境下搭建Java工程是Java开发者的基础技能,本文将详细介绍从环境准备到项目创建、配置管理及构建运行的完整流程,涵盖Maven和Gradle两种主流构建工具的使用方法,帮助开发者高效完成Java工程的初始化工作。
环境准备:安装JDK与构建工具
安装JDK
Java工程运行依赖Java开发工具包(JDK),需先安装JDK并配置环境变量,以OpenJDK 11为例:
- 下载JDK:访问OpenJDK官网或使用Linux包管理器(如Ubuntu的
apt
:sudo apt install openjdk-11-jdk
)。 - 配置环境变量:编辑
~/.bashrc
或/etc/profile
文件,添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # JDK实际安装路径 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
- 生效配置:执行
source ~/.bashrc
,验证安装:java -version
和javac -version
,输出版本信息即成功。
安装构建工具
(1)Maven安装
Maven是Apache推出的项目构建和管理工具,依赖管理便捷。
- 下载Maven:访问Maven官网下载二进制压缩包(如
apache-maven-3.8.6-bin.tar.gz
)。 - 解压并配置:
sudo tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /usr/local/ # 解压到/usr/local sudo ln -s /usr/local/apache-maven-3.8.6 /usr/local/maven # 创建软链接
- 配置环境变量:在
~/.bashrc
中添加:export MAVEN_HOME=/usr/local/maven export PATH=$MAVEN_HOME/bin:$PATH
- 生效配置后验证:
mvn -version
,输出版本信息即成功。
(2)Gradle安装
Gradle是Apache推出的基于Groovy/Kotlin的构建工具,灵活性更高。
- 下载Gradle:访问Gradle官网下载二进制包(如
gradle-7.5-bin.zip
)。 - 解压并配置:
sudo unzip gradle-7.5-bin.zip -d /usr/local/ sudo ln -s /usr/local/gradle-7.5 /usr/local/gradle
- 配置环境变量:在
~/.bashrc
中添加:export GRADLE_HOME=/usr/local/gradle export PATH=$GRADLE_HOME/bin:$PATH
- 验证安装:
gradle -version
,输出版本信息即成功。
创建Java工程
使用Maven创建工程
Maven通过archetype
(原型)快速生成项目骨架,支持多种模板(如Java应用、Web应用)。
- 命令行创建:
mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
参数说明:
groupId
:组织标识(通常为反向域名,如com.example
);artifactId
:项目名称(如myapp
);archetypeArtifactId
:原型类型(maven-archetype-quickstart
为Java应用模板)。
- 创建完成后,会在当前目录生成
myapp
文件夹,进入目录可见Maven标准结构:myapp/ ├── pom.xml # 项目核心配置文件 ├── src/ │ ├── main/ │ │ ├── java/ # Java源码目录 │ │ └── resources/ # 配置文件目录 │ └── test/ │ ├── java/ # 测试源码目录 │ └── resources/ # 测试配置文件目录 └── target/ # 构建输出目录
使用Gradle创建工程
Gradle通过init
命令初始化项目,支持多种DSL(Groovy/Kotlin)和项目类型。
- 命令行创建(Groovy DSL,Java应用):
gradle init --type java-application --package com.example --dsl groovy --test-framework junit-jupiter
参数说明:
--type
:项目类型(java-application
为Java应用);--package
:基础包名(如com.example
);--dsl
:脚本语言(groovy
或kotlin
);--test-framework
:测试框架(junit-jupiter
为JUnit 5)。
- 创建完成后,生成项目结构:
myapp/ ├── build.gradle # 项目构建脚本 ├── settings.gradle # 项目设置文件 ├── gradle/ # Gradle配置目录 ├── src/ │ ├── main/ │ │ ├── java/com/example/ # Java源码目录 │ │ └── resources/ # 配置文件目录 │ └── test/ │ └── java/com/example/ # 测试源码目录 └── build/ # 构建输出目录
通过IDE创建工程
以IntelliJ IDEA为例,支持直接从IDE创建或导入命令行生成的项目:
- 新建项目:打开IDEA,选择“File → New → Project”,选择“Maven”或“Gradle”,填写
groupId
、artifactId
等信息,点击“Create”即可生成项目。 - 导入项目:打开命令行生成的项目目录,IDEA会自动识别
pom.xml
或build.gradle
,提示导入,确认后即可打开。
配置管理与依赖管理
Maven依赖配置
依赖配置在pom.xml
的<dependencies>
标签中添加,示例:
<dependencies> <!-- JUnit 5 测试依赖 --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.9.2</version> <scope>test</scope> <!-- 作用域:test表示仅测试有效 --> </dependency> <!-- Log4j2 日志依赖 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.20.0</version> </dependency> </dependencies>
- 阿里云镜像加速:修改
pom.xml
中的<mirrors>
标签,添加阿里云镜像:<mirrors> <mirror> <id>aliyun</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>
Gradle依赖配置
依赖配置在build.gradle
的dependencies
块中添加,示例:
dependencies { // JUnit 5 测试依赖 testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2' // Log4j2 日志依赖 implementation 'org.apache.logging.log4j:log4j-core:2.20.0' }
- 阿里云仓库配置:在
build.gradle
的repositories
块中添加:repositories { mavenCentral() maven { url 'https://maven.aliyun.com/repository/public' } }
构建工具命令对比
以下是Maven和Gradle常用构建命令的对比:
操作场景 | Maven命令 | Gradle命令 | 说明 |
---|---|---|---|
清理编译文件 | mvn clean |
gradle clean |
删除target /build 目录 |
编译源码 | mvn compile |
gradle compileJava |
编译main 目录下的Java文件 |
运行测试 | mvn test |
gradle test |
执行test 目录下的测试用例 |
打包项目 | mvn package |
gradle build |
生成jar/war包(位于target /build/libs ) |
安装到本地仓库 | mvn install |
gradle install |
将jar包安装到本地Maven/Gradle仓库 |
多模块工程创建
实际开发中,多模块工程可提升代码复用性和维护性,以Maven为例:
- 创建父模块:生成一个
pom
打包类型的父模块,用于统一管理依赖和版本。 - 创建子模块:在父模块目录下执行
mvn archetype:generate
,通过-Dparent
指定父模块,或直接在IDE中创建子模块。 - 子模块依赖:在子模块的
pom.xml
中通过<dependency>
引用其他子模块的artifactId
。
Gradle多模块工程通过settings.gradle
管理子模块,使用include ':module1', ':module2'
声明模块,在根目录build.gradle
中统一配置版本和依赖。
常见问题与解决
FAQs
问题1:Linux下Java项目编译时出现“编码GBK的不可映射字符”怎么办?
解答:该问题通常因源码文件编码与JDK默认编码(GBK)不一致导致,解决方法:
- 在
pom.xml
中添加全局编码配置(Maven):<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
- 或在
build.gradle
中配置(Gradle):tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
问题2:如何配置Maven使用本地依赖 jar 包?
解答:若需使用本地jar包(非远程仓库),可通过以下两种方式:
- 方式1:将jar包安装到本地仓库,再通过
<dependency>
引用:mvn install:install-file -Dfile=/path/to/local.jar -DgroupId=com.example -DartifactId=local-lib -Dversion=1.0 -Dpackaging=jar
然后在
pom.xml
中添加依赖:<dependency> <groupId>com.example</groupId> <artifactId>local-lib</artifactId> <version>1.0</version> </dependency>
- 方式2:直接在
pom.xml
中通过<systemPath>
指定本地路径(不推荐,因无法传递依赖):<dependency> <groupId>com.example</groupId> <artifactId>local-lib</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>/path/to/local.jar</systemPath> </dependency>
通过以上步骤,即可在Linux环境下完成Java工程的创建、配置与构建,后续可根据项目需求添加业务代码、集成框架(如Spring Boot)等,逐步完善工程功能。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15020.html