Jika Spring BootJar Anda tidak berfungsi

Memecahkan Masalah Pemuatan Spring Boot Jar



gambar







Apakah Anda mengalami masalah saat memulai arsip Spring Boot baru?







Secara umum, inovasi ke arah ini bukanlah yang pertama, tidak ada standar khusus. Oleh karena itu, banyak orang mengambil masalah dan menyelesaikannya di forum dan stack overflow.

Jika Anda juga mengalami masalah, saya akan membantu Anda menyelesaikannya. Dalam hal ini, baca terus.







, 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.







, . ?







.







  1. spring- . , , , jsp .
  2. . : spring-, , — , , . , .
  3. — BootJar.


. , , .

Gradle.

.







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/')
    }
}
      
      





Saya tidak dapat menemukan cara menambahkannya dengan cara lain (langsung) - tidak mungkin untuk menghubungkan konfigurasi jspImplementation dari proyek itu sendiri tergantung pada dependensi, tetapi saya ingin. Tetapi jika kita masih mengambilnya dari modul lain, maka kita tetap melakukan ini:







artifacts {
    jspImplementation jsp
}
      
      





Itu saja, sekarang kita memiliki lib sumber daya, yang, menurut semua standar, tomkat harus dimuat, dan dimuat. Jalankan seperti BootJar.








All Articles