Когда gradle build (war) при весенней загрузке, может поместить статические файлы в корень? - PullRequest
0 голосов
/ 14 декабря 2018

Я понимаю, что для доступа к статическим файлам на веб-сервере (apache) статические файлы должны находиться за пределами WEB-INF.однако стартовый проект Spring с gradle создает статические файлы в WEB-INF.Поиск не может найти установку, которая создаст статический файл вне WEB-INF.Я не знаю, если со мной что-то не так.Мне нужен совет.

Ниже приведен базовый стартовый проект с пружинной загрузкой, созданный для тестирования.

среда

пружинная загрузка 2.1.1,java 1.8

макет

src
  └ main
        └ java
            └ ...
        └ resources
            └ static
            └ templates
            └ application.properties
  └ test

build.gradle

buildscript {
    ext {
        springBootVersion = '2.1.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

configurations {
    providedRuntime
}

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    implementation('org.springframework.session:spring-session-core')
    compileOnly('org.projectlombok:lombok')
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

Военная структура AS-IS

└META-INF
└org
└WEB-INF
    └classes
        └com
        └static
        └templates
        └application.properties
    └lib
    └lib-provided

Военная структура TO-BE

└META-INF
└org
└resources
    └static
    └templates
└WEB-INF
    └classes
        └com
        └application.properties
    └lib
    └lib-provided

спасибо.

1 Ответ

0 голосов
/ 14 декабря 2018

См. Документацию по war Gradle здесь Плагин War - настройки по умолчанию :

Поведение задачи War по умолчанию заключается в копировании содержимого src / main /веб-приложение в корне архива.Ваш каталог веб-приложения может, конечно, содержать подкаталог WEB-INF, который может содержать файл web.xml.Ваши скомпилированные классы скомпилированы в WEB-INF / classes.Все зависимости конфигурации среды выполнения 1 копируются в WEB-INF / lib.

Если вы переместите папки ресурсов static и templates в src/main/webapp,Вы должны получить ожидаемую структуру в архиве войны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...