Solucionando problemas de carregamento do Spring Boot Jar

Você encontrou o problema de iniciar um novo arquivo Spring Boot?
Em geral, a inovação nessa direção não é a primeira, não existem normas especiais. Portanto, muitas pessoas remexem problemas e os resolvem em fóruns e estouro de pilha.
Se você também encontrar um problema, vou ajudá-lo a resolvê-lo. Neste caso, continue lendo.
, BootJar . , .
. — JSP . JSP? , - , , .
( ):
/src/main/ java/ resources/ static/ some.html public/ webapp/ WEB-INF/jsp index.jsp
BootJar / BootWar, jsp BootJar . BootWar. , . , — , , , . BootRun , .
, : , .
, . BootJar. , … ! , 302 + 404 ( ). .
— , , , webjars. ???
. jsp BootJar, BootWar. … . , .
, . BootJar — . .
: Spring Boot , . — . ! .
. — BootJar (webjars), , , , , ! , .
— - static/, public/. , . jsp . , . , ( ), jsp . jsp ,
spring.resources.static-locations
.
, , , . , ( webapp/), , , — META-INF/resources, . BootJar. .
? -, -, , . — . , . , .
-? -, , , -, . , . , : — , , .
. . , , classpath.
, . ?
.
- spring- . , , , jsp .
- . : spring-, , — , , . , .
- — BootJar.
sourceSets {
jsp {
resources.source(sourceSets.main.resources);
resources.srcDirs += ['src/main/webapp'];
}
jmh {
.. ..
}
}
task jsp(type: Jar, description: 'JSP Packaging') {
archiveBaseName = 'jsp'
group = "build"
def art = sourceSets.jsp.output
from(art) {
exclude('META-INF')
into('META-INF/resources/')
}
from(art) {
include('META-INF/*')
into('/')
}
dependsOn(processJspResources)
}
processJspResources , . :
bootJar {
dependsOn(jsp)
bootInf.with {
from(jsp.archiveFile) {
include('**/*.jar')
}
into('lib/')
}
}
Não consegui achar como adicionar de outra forma (direto) - é impossível conectar a configuração jspImplementation do próprio projeto dependendo das dependências, mas gostaria. Mas se ainda o pegarmos de outro módulo, ainda fazemos isso:
artifacts { jspImplementation jsp }
É isso, agora temos uma biblioteca de recursos que, de acordo com todos os padrões, o tomkat deve carregar, e carrega. Execute como BootJar.