spingboot工程和普通工程打包成的jar包,目录有啥区别
时间: 2023-12-23 19:05:56 浏览: 22
实际上,Spring Boot 工程和普通工程打包成的 jar 包的目录结构是非常相似的,都包含了编译后的 class 文件、资源文件、元数据以及一些额外的目录。
Spring Boot 工程打包成的 jar 包相对于普通工程打包成的 jar 包,多了一些特殊的目录和文件,例如:
- `BOOT-INF` 目录:包含了应用程序的核心代码和依赖库。
- `META-INF` 目录:包含了一些元数据信息,如 MANIFEST.MF 文件、Spring Boot 的配置文件和 Spring.factories 文件等。
- `org` 目录:包含了一些 Spring Boot 和其它库的内部类。
- `application.properties` 或 `application.yaml` 文件:存放了 Spring Boot 应用程序的配置信息。
因此,Spring Boot 工程打包成的 jar 包比普通工程打包成的 jar 包更加复杂,但也更加灵活和方便,可以直接通过 java -jar 命令启动应用程序,并且包含了所有依赖库和资源文件,方便在不同的环境中部署和运行。
相关问题
springboot工程打包成的jar包与普通的jar包区别是啥
Spring Boot工程打包成的jar包与普通的jar包最大的区别是,Spring Boot的jar包是可执行的,包含了嵌入式的Web服务器和启动类。在运行时,只需要使用java -jar命令即可启动应用程序。而普通的jar包需要通过java命令调用其中的main方法才能运行,无法像Spring Boot那样直接执行。此外,Spring Boot的jar包还包含了所有的依赖库和资源文件,可以方便地在不同的环境中进行部署和运行。
那么普通的工程打包成jar包后的目录结构是啥
当你使用 Maven 将普通的 Java 项目打包成 jar 包时,生成的目录结构一般如下:
```
myproject/
└── target/
├── myproject-0.0.1-SNAPSHOT.jar
├── classes/
│ └── ...
├── generated-sources/
│ └── ...
├── generated-test-sources/
│ └── ...
├── maven-archiver/
│ └── ...
├── maven-status/
│ └── ...
└── test-classes/
└── ...
```
其中,`myproject-0.0.1-SNAPSHOT.jar` 是打包后的 jar 包,`classes/` 目录是编译后的 class 文件,`generated-sources/` 和 `generated-test-sources/` 目录是生成的源码,`maven-archiver/` 目录中包含了打包过程中的一些元数据信息,`maven-status/` 目录包含了 Maven 执行过程中的一些状态信息,`test-classes/` 目录是测试代码编译后的 class 文件。与 Spring Boot 项目不同的是,普通 Java 项目打包后的 jar 包不包含嵌入式的 Web 服务器和启动类,需要自己编写 Main 方法来启动应用程序。