如何在Maven中省略基础包的目录结构?
在Maven中省略基础包目录结构的可行性
可以实现,而且不需要额外配置Maven,只要保证Java文件里的package声明和目标包结构一致就行。
具体示例
假设你要实现的需求:
- 基础包为
org.example.server Main.java的包路径是org.example.server,物理路径想放在src/main/java/Main.javaOther.java的包路径是org.example.server.modules,物理路径想放在src/main/java/modules/Other.java
1. 编写Java文件
src/main/java/Main.java内容:
package org.example.server; public class Main { public static void main(String[] args) { System.out.println("Test"); } }
src/main/java/modules/Other.java内容:
package org.example.server.modules; public class Other { public void execute() {} }
2. 编译打包
直接执行Maven命令:
mvn clean package
3. 验证结果
生成的Jar包中会包含以下结构的class文件:
org/example/server/Main.classorg/example/server/modules/Other.class
和采用标准目录布局(源文件按包路径嵌套存放)生成的Jar完全一致。
注意事项
这种非标准目录结构会降低项目的可读性,团队协作时容易造成理解障碍,除非有特殊业务需求,否则推荐遵循Maven的标准目录布局。
内容的提问来源于stack exchange,提问作者Hagalaz
相关产品推荐
相关产品推荐

