Solución:
Prueba un enfoque diferente. En lugar de copiar manualmente los recursos, dígale a Gradle que cuando procese recursos para el JAR, también tenga en cuenta lo que hay en frontend/dist/
:
processResources {
from ('frontend/dist/') {
into 'public'
}
}
Esto debería resultar en un JAR que contiene un public/
directorio, con el contenido de frontend/dist/
dentro de ella.
Configuración de Gradle para Spring Boot 1.5 2.x + Angular 2-6
Angular en subcarpeta frontend
Módulo frontend
Caja build.gradle
:
plugins {
id "com.moowork.node" version "1.2.0"
}
node {
version = '8.11.3'
npmVersion = '5.6.0'
download = true
workDir = file("${project.buildDir}/node")
nodeModulesDir = file("${project.projectDir}")
}
task build(type: NpmTask) {
args = ['run', 'build']
}
build.dependsOn(npm_install)
Nota para Angular 6
Actualizar outputPath
valor en angular.json
a ‘dist’
Módulo backend
Editar build.gradle
para el módulo de backend:
Spring Boot 2.X:
bootJar {
archiveName = "yourapp.jar"
mainClassName="com.company.app.Application"
from('frontend/dist') {
into 'static'
}
}
Bota de primavera 1.5.X:
jar {
archiveName = "yourapp.jar"
manifest {
attributes 'Main-Class': 'com.company.app.Application'
}
from('frontend/dist') {
into 'static'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Finalmente ejecutar bootRepackage
o bootJar
tarea y comprobar los resultados en builds/libs
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)