Springboot integra jsp empaquetado y pisando el pit diary

Este artículo comparte principalmente cómo configurar correctamente maven pom para el paquete jar del proyecto springboot que integra jsp.

1. Estructura del proyecto

2. Configuración de embalaje

1.pom.xml agregar la configuración del complemento spring-boot-maven

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<executions>
				<execution>
					<goals>
						<goal>repackage</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

Si es solo un paquete de proyecto ordinario, la configuración anterior es suficiente, pero el paquete con src/main/webapp no ​​es suficiente, encontrará que el contenido de src/main/webapp no ​​está incluido en el paquete jar

2.pom.xml agregar configuración de recursos de configuración

<build>
    <resources>
        <resource>
            <directory>src/main/webapp</directory>
            <!-- 注意此次必须要放在此目录下才能被访问到 -->
            <targetPath>META-INF/resources</targetPath>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

Esta configuración puede empaquetar src/main/webapp en un paquete jar, pero este paquete jar no puede permitir que jsp acceda normalmente

Nota: si <targetPath>META-INF/resources</targetPath> no está configurado, el contenido de src/main/webapp se guardará en el directorio BOOT-INF/. Después de la prueba, no se puede acceder normalmente a la página jsp y debe especificarse en META-INF/resources para acceder normalmente

3. La versión de spring-boot-maven-plugin se especifica como 1.4.2.RELEASE

​<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!-- 一定要是这个版本,其他版本访问不到页面 -->
            <version>1.4.2.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- 1.4.2.RELEASE导致多个main方法的情况下需要指定主类 -->
                <mainClass>com.company.admin.AdminApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

El motor de plantillas de front-end recomendado oficialmente por springboot es thymeleaf, por lo que puede haber compatibilidad para la compatibilidad con jsp. 1.4.2.Se prueba LIBERAR. Se desconoce la razón exacta, pero funciona.

Si no hay varios métodos principales en el proyecto, es posible que mainClass no esté configurado

4. Configuración de la versión final

<build>
	<resources>
		<resource>
			<directory>src/main/webapp</directory>
			<!-- 注意此次必须要放在此目录下才能被访问到 -->
			<targetPath>META-INF/resources</targetPath>
			<filtering>false</filtering>
		</resource>
		<resource>
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
	</resources>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<!-- 一定要是这个版本,其他版本访问不到页面 -->
			<version>1.4.2.RELEASE</version>
			<executions>
				<execution>
					<goals>
						<goal>repackage</goal>
					</goals>
				</execution>
			</executions>
			<configuration>
				<!-- 1.4.2.RELEASE导致多个main方法的情况下需要指定主类 -->
				<mainClass>com.company.admin.AdminApplication</mainClass>
			</configuration>
		</plugin>
	</plugins>
</build>

¿Qué tal? Si te resulta útil, ¡no dudes en recogerlo! ! !

Adjunto: el directorio de código involucrado

gitee: springcloud-template: un marco de microservicio basado en springcloud netflix, que registra algunas de las mejores aplicaciones para el desarrollo de microservicios. Bienvenido a aprender y guiar.

Supongo que te gusta

Origin blog.csdn.net/w13528476101/article/details/127468115
Recomendado
Clasificación