IDE 选哪个
| 优势 | 不足 | |
|---|---|---|
| IntelliJ IDEA Community | 免费 + 最强 Java 体验 | Ultimate 版才有 Spring / 数据库支持 |
| IntelliJ IDEA Ultimate | Spring / Web / 数据库全套 | 付费(个人 vs 公司) |
| VSCode + Extension Pack for Java | 轻量、跨平台、免费 | 体验不如 IntelliJ 全面 |
| Eclipse | 免费、企业老牌 | UI 老旧、扩展生态散乱 |
| NetBeans | 微软曾用 | 越来越边缘 |
新手 / 默认:IntelliJ IDEA Community 装上就行。学生 / 开源作者可免费拿 Ultimate(JetBrains 学生计划)。
VSCode + Java 适合:写小工具 / Lua-Java 混合项目 / 已有 VSCode 习惯。
Maven 速查
创建项目
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
常用命令
mvn clean # 清掉 target/
mvn compile # 编译
mvn test # 跑测试
mvn package # 打 jar 到 target/
mvn install # 装到本地 .m2 仓库(其他项目能 require)
mvn deploy # 发布到远程仓库
mvn clean install # 经典组合:清掉 + 重打
mvn -DskipTests package # 跳过测试
mvn exec:java -Dexec.mainClass=com.example.App # 跑 main
mvn dependency:tree # 看依赖树
mvn versions:display-dependency-updates # 看可升级的依赖
pom.xml 最小
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
scope(依赖作用域)
<scope>compile</scope> <!-- 默认,编译 + 运行 -->
<scope>provided</scope> <!-- 编译需要,运行时由容器提供(如 servlet-api) -->
<scope>runtime</scope> <!-- 运行需要不编译 -->
<scope>test</scope> <!-- 只在测试 -->
<scope>system</scope> <!-- 本地文件(少用) -->
Gradle(现代项目越来越多用)
Gradle = Maven 的替代品。优势:
- 构建脚本是 Groovy / Kotlin(不是 XML)
- 构建快(缓存好)
- Android 官方默认用它
- Spring Boot 模板默认现在 Gradle
创建(Gradle 8+)
gradle init --type java-application
跑
./gradlew build # 编译 + 测试 + 打包
./gradlew run # 跑主类
./gradlew test # 测试
./gradlew clean
./gradlew dependencies # 依赖树
build.gradle.kts(Kotlin DSL)
plugins {
application
java
}
group = "com.example"
version = "1.0.0"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
mavenCentral()
}
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.10.1")
}
application {
mainClass = "com.example.App"
}
tasks.test {
useJUnitPlatform()
}
选 Maven 还是 Gradle
| 选 Maven | 选 Gradle |
|---|---|
| 国内企业项目(绝大多数还是 Maven) | 新项目 / Spring Boot 3+ 模板默认 |
| 习惯 XML 配置 | Android 必用 |
| 团队学习成本低(Maven 大家更熟) | 构建快、多模块管理强 |
当前势头:Spring 项目里 Gradle 慢慢占多数;老 Java 后端 Maven 主导。两个都会一点点没坏处。
添加依赖
去 Maven Central 搜库名,复制 <dependency> / implementation 块即可。
例(Jackson JSON 库):
<!-- Maven -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.16.0</version>
</dependency>
// Gradle
implementation("com.fasterxml.jackson.core:jackson-databind:2.16.0")
多模块项目
parent/
├── pom.xml 聚合 + 共用配置
├── core/
│ └── pom.xml 子模块 1
├── api/
│ └── pom.xml 子模块 2
└── tests/
└── pom.xml
parent/pom.xml:
<modules>
<module>core</module>
<module>api</module>
<module>tests</module>
</modules>
子模块:
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>core</artifactId>
mvn install 从父跑会按顺序编译所有子模块。
.gitignore
target/
.idea/
*.iml
.gradle/
build/
.classpath
.project
.settings/
实战建议
- 永远写
<maven.compiler.source>/<maven.compiler.target>——锁 JDK 版本 - IDE 里启用"导入后自动 mvn install"——少踩同步问题的坑
- 多模块项目按业务拆——别一个项目装一切
- 大项目用 Gradle 构建缓存 + parallel build
→ 下一篇 基本类型与包装类