一、指定打包类型
在pom.xml中编写:
<packaging>jar</packaging>
二、配置资源目录
在pom.xml中编写
<build>
<resources>
<resource>
<!-- 打包webapp中的文件 -->
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<!-- 打包resource中的文件 -->
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
<plugins>
<!-- 添加打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<!-- 启动类的引用,根据具体名称修改 -->
<!-- <mainClass>com.wsf.cinema.CimenaApplication</mainClass> -->
<mainClass>**.**.**.**Application</mainClass>
</configuration>
</plugin>
</plugins>
</build>
1. <resources>
元素:定义了项目中的资源目录,指定了哪些资源文件将被包含在构建产物中。在这里,有两个 <resource>
元素,分别指定了 src/main/webapp
和src/main/resources
目录下的所有文件都将被包含在构建产物中(本项目中webapp中存放静态资源、resources中错放mapper映射)。第一个 <resource>
元素还通过 <targetPath>
指定了目标路径,即将 src/main/webapp
中的文件复制到 JAR 文件中的 META-INF/resources
目录下(不指定会出错)。
在 Maven 项目中,
<targetPath>
元素用于指定资源文件在构建产物中的目标路径。在配置中,指定<targetPath>META-INF/resources</targetPath>
的作用是将src/main/webapp
目录下的资源文件复制到 JAR 文件的META-INF/resources
目录中。在 Spring Boot 中,
META-INF/resources
目录通常被用于存放静态资源文件,这些资源文件可以被直接访问而无需通过Controller。这种做法符合标准的Web应用程序的文件结构,因此是一个常见的配置。如果不指定
<targetPath>
,默认情况下 Maven 将会把资源文件复制到 JAR 文件的根目录下。指定<targetPath>META-INF/resources</targetPath>
的目的是为了按照 Spring Boot 的规范将静态资源放置在META-INF/resources
目录中。
2.<plugins>
元素:包含了 Maven 插件的配置,其中包括了 org.springframework.boot:spring-boot-maven-plugin
插件。该插件用于将 Spring Boot 应用程序打包成可执行的 JAR 文件。在插件的 <configuration>
元素中,设置了 <includeSystemScope>
为 true
,表示将系统范围的依赖项包含在构建产物中。同时,通过 <mainClass>
指定了应用程序的主类,即com.wsf.cinema.CimenaApplication
。
三、默认的maven打包配置
在不显示配置的情况下,maven会使用默认的配置:(一定要写maven打包插件)
如果不使用这个插件,Maven 将使用默认的打包机制,通常是将项目打包成一个标准的 JAR 文件。这样的 JAR 文件可能无法直接运行,因为它可能没有嵌入的 Servlet 容器,并且可能需要额外的配置才能正确运行 Spring Boot 应用程序。
-
打包类型(Packaging): 如果项目 POM 文件中未显式指定
<packaging>
元素,Maven 将使用默认的 "jar" 打包类型。 -
源代码目录: Maven 使用默认的源代码目录结构,即
src/main/java
用于主要的Java源代码。 -
资源文件目录: 默认的资源文件目录是
src/main/resources
。 -
测试代码目录: Maven 使用默认的测试代码目录结构,即
src/test/java
用于测试的Java源代码。 -
测试资源文件目录: 默认的测试资源文件目录是
src/test/resources
。 -
输出目录: Maven 默认会将构建生成的文件放在
target
目录中