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

→ 下一篇 基本类型与包装类