2017-02-09 14 views
1

Я использую версию плагина для плагинов Spring boot 1.5.1 RELEASE, как показано ниже. Строка не работает в webProject, жалуясь на отсутствие свойства «mainClass» и работает только при запуске «webProject: build '. Это ожидаемое использование?Плагин весеннего ботинка плагины в проекте с несколькими модулями - поиск ошибок mainClass

Редактировать: Обновлен скрипт сборки и удален плагин «spring-boot» от allProjects. Пришлось добавить «bootRepackage» в веб-проекте, так как на этом шаге не удалось - с той же ошибкой. Добавление «bootRepackage» не помогло.

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

plugins { 
    id 'org.springframework.boot' version '1.5.1.RELEASE' 
} 

defaultTasks 'clean', 'build' 
apply plugin: 'java' 
apply plugin: 'war' 

sourceCompatibility = 1.7 
targetCompatibility = 1.7 

allprojects { 
    apply plugin: 'java' 
    //apply plugin: 'org.springframework.boot' -- Commented out based on the answer 
    repositories { 
     mavenLocal() 
    } 
    dependencies { 
     compile('org.springframework.boot:spring-boot-starter-data-jpa') 
     //all dependencies 
    } 
} 

project('aProject') { 
    dependencies { 
     compile(project(':bProject')) 

    } 
} 

project('webProject') { 

    apply plugin: 'war' 
    apply plugin: 'org.springframework.boot' 
    war { 
     baseName = 'webProject' 
     version = '1.0.0-SNAPSHOT' 
    } 
    dependencies { 
     compile(project(':aproject')) 
     compile(project(':bProject')) 
     compile 'org.springframework.boot:spring-boot-starter-tomcat' 
    } 
    springBoot { 
     mainClass = 'com.abc.SomeApplication' 
    } 
bootRepackage{ 
    enabled = false 
    mainClass = 'com.abc.SomeApplication' 
} 

} 

ответ

1

У меня такая же проблема в проекте Spring Spring с несколькими модулями. При компиляции модуля A, который не имеет основного класса. Основной класс находится в другом модуле (модуль B).

Я добавляю плагин в сборку модуля A. build.gradle.

apply plugin: 'application' 

mainClassName = "module B.ITS_MAIN_CLASS" 

Тогда это работает.

+0

хотя этот ответ адресовал мою проблему, я закончил использовать весеннюю загрузку для всех модулей. Пробовал предложение luboskmac, но не повезло. закончил тем, что не использовал bootRun. благодаря – patb23

2

Не использовать Spring загрузочной Gradle плагина в основном проекте, только в webProject субмодуле.

+0

Спасибо. Я удалил плагин из «allprojects». Военная задача была успешной, но переупаковка завершилась с той же ошибкой. Я обновил свой вопрос на основе ваших данных. Спасибо – patb23