【工具】在IntelliJ IDEA中使用Maven进行依赖管理
以下使用pom.xml管理Java项目结构。
省流:
如果“源代码所在目录”未指定正确,则会出现明明目录里有各种源文件、却显示无法找到Class、无法正常进行import、无法正常运行等问题。
edit time: 2025-12-10 17:53:36
全网最强Maven介绍
我也开始当标题党了嘿嘿
首先介绍一个典型的 pom.xml ,它是maven用于定义项目结构的文件。
我们可能需要自行修改的内容介绍:
<groupId, artifactId, version>自行指定,表示本项目的库名、版本等等,用于各个项目之间的依赖确定。例如其他项目希望导入1.0-SNAPSHOT版本的这个项目,则你就需要写对项目名称和版本号。maven.compiler.source和maven.compiler.target用于指定JDK版本,例如17。dependencies是maven管理依赖的核心。如果我们需要从网络中下载依赖、或者需要管理自己的多个项目之间的依赖,则需要在此处指定相应的<groupId, artifactId, version>。build下的sourceDirectory和testSourceDirectory常常是我们识别不到Main.java等文件的原因。因为如果未指定,则maven默认从src/main/java和src/test/java这两个目录下寻找Main.java等源文件,而不会把我们其他位置的java文件理解为源文件。我下述的Main.java直接位于src目录下,而不是默认的src/main/java目录下,所以要指定sourceDirectory为src。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yourcompany</groupId>
<artifactId>TextEditorSD</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<languagetool.version>6.3</languagetool.version>
</properties>
<dependencies> <!-- LanguageTool 核心依赖 -->
<dependency>
<groupId>org.languagetool</groupId>
<artifactId>languagetool-core</artifactId>
<version>${languagetool.version}</version>
</dependency>
<!-- 英文语言包 -->
<dependency>
<groupId>org.languagetool</groupId>
<artifactId>language-en</artifactId>
<version>${languagetool.version}</version>
</dependency>
<dependency> <groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.9</version>
</dependency>
<!-- JUnit 5 依赖 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency> <dependency> <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<!-- 可选:如果你用了@ParameterizedTest -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency> <dependency> <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.3</version>
<scope>compile</scope>
</dependency> </dependencies>
<build> <testSourceDirectory>src/test</testSourceDirectory>
<sourceDirectory>src</sourceDirectory>
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration> <source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration> </plugin> </plugins> </build></project>
为了避免混淆,在下面介绍另一种管理依赖的方式:IDEA的Project Structure。
如果在新建IDEA项目时的Build system选择了 IntelliJ ,则会在项目根目录下生成 iml 文件(如 TextEditorSD.iml ),
这个文件的作用类似于上述 pom.xml ,用于指定项目源文件目录、包依赖等等。

而我们要修改这个 iml 文件的方法是在左上角 File - Project Structure - Modules等选项卡下选择。
例如上图可以点击 src 目录,然后选择 Mark as: Sources,从而得到与上述 pom.xml 类似的效果:把 src 目录指定为项目源文件夹。
如果源文件夹未指定正确,则会出现明明目录里有各种源文件、却显示无法找到Class、无法正常进行import、无法正常运行等问题。
如何添加依赖
在Maven中添加依赖是简单而直接的:

如果已经下载了相应的class,则可以把指针悬浮在上面,选择 ... ,
进行import,或者Find JAR on web,或者添加ClassPath等方式。
如果同时有Maven和IntelliJ两种构建方式
参考: Maven 依赖项 | IntelliJ IDEA 文档
根据IDEA官方文档介绍,Maven的 pom.xml 中的设置实际上是优先级更高的。
在我们选择创建一个 pom.xml 后,请不再使用 Project Structure 手动设置依赖关系,而是对项目的配置全部集中到 pom.xml 中。

开心!
明白了maven和原来的project structure标文件夹颜色是等价的;
解决办法是把原来的import删掉然后在用到的地方选择添加ClassPath。
以前写的零零散散的Project Structure方法
以下使用IDEA的Project Structure管理Java项目结构。
没有运行按钮
很可能是项目源码没有mark成source。
- 右键项目文件夹→
- Open Module Settings→
- 从左到右,Project Settings:
Modules→选中项目文件夹→Mark as下面也选中项目文件夹→Mark as选Sources→Apply, OK
关于没有找到主类:关闭项目,重新打开即可。
全局更改运行库设置
首先File - Close Project,在主界面里:
Customize - All Settings...
之后找到Build, Execution, Deployment - Build Tools - Maven,
单击之后把Local repository 勾选[ ] Override,改成你需要的运行库即可。
ps. 如果对于某特定项目已经存储了特殊的配置,可以在不Close Project的情况下手动改该项目对应的Settings... 。我猜也可以把这个项目的配置文件删掉让它重新生成一个,但我没试过。
读到的import库是奇怪的org而不是自己实现的包
大概率是source之类的没有mark对,跟本目录下的“IntelliJ没有Run”很可能有相似的解决办法。
- 右键项目文件夹→
- Open Module Settings→
- 从左到右,Project Settings:
Modules→选中项目文件夹→Mark as下面也选中项目文件夹→Mark as选Sources→Apply, OK