Spring Boot 2 Gradle多模块项目

时间:2019-04-16 02:37:24

标签: spring-boot gradle multi-module

我是Gradle的新手。我正在尝试通过Google,堆栈溢出和git hub创建spring boot 2 gradle 5多模块项目,我已经创建了一个工作项目,但是它的gradle文件在很多地方似乎都是多余的。下面是代码段,请让我知道它是否可以改进或在出现问题时纠正我。

        ├── settings.gradle
        ├── build.gradle
        ├── gradle-core
        │   ├── build.gradle
        │   └── src
        │       ├── main
        │           ├── java
        │               └── com
        │                   └── gradle
        │                       └── mm
        │                           └── core
        │                               ├── DemoService.java
        │                               └── Hello.java
        ├── gradle-web
        │   ├── build.gradle
        │   └── src
        │       ├── main
        │           ├── java
        │               └── com
        │                   └── gradle
        │                       └── mm
        │                           └── web
        │                               ├── DemoApplication.java
        │                               └── HelloController.java

/build.gradle

    `defaultTasks 'clean', 'bootRun'
    buildscript {
        ext {
            springBootVersion = '2.1.2.RELEASE'
        }
        repositories {
            mavenCentral()
            maven {
                url "https://plugins.gradle.org/m2/"
            }
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        }
    }
    allprojects {
        group = 'com.example'
        version = '0.0.1-SNAPSHOT'
    }
    subprojects {
        repositories {
            mavenCentral()
            maven {
                url "https://plugins.gradle.org/m2/"
            }
        }
        apply plugin: 'java'
        apply plugin: 'idea'
        apply plugin: 'eclipse'
        apply plugin: 'org.springframework.boot'
        apply plugin: 'io.spring.dependency-management'
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
        dependencies {
            compile 'org.springframework.boot:spring-boot-starter-web'
        }
    }`

/demo/settings.gradle

    `rootProject.name = 'demo'
    include "gradle-core"
    include "gradle-web"
    `

/demo/gradle-core/build.gradle

    `buildscript {
        repositories { mavenCentral() }
    }
    ext { springBootVersion = '2.1.2.RELEASE' }
    apply plugin: 'java'
    apply plugin: 'eclipse'
    bootJar.enabled = false
    jar.enabled = true
    jar {
        baseName = 'gradle-core'
        version = '0.0.1-SNAPSHOT'
    }
    sourceCompatibility = 1.8
    repositories { mavenCentral() }
    dependencies {
        compile('org.springframework.boot:spring-boot-starter')
    }
    dependencyManagement {
        imports { mavenBom("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") }
    }`

/demo/src/main/java/com/example/demo/DemoService.java

    `package com.gradle.mm.core;
           import org.springframework.stereotype.Component;
           import java.util.Date;
           @Component
           public class DemoService {
           public Hello getHello() {
           System.out.println("DemoService.getHello");
           Hello hello = new Hello("shrikant", new Date().toString());
           return hello;
           }
           }`

/demo/src/main/java/com/example/demo/Hello.java

    `package com.gradle.mm.core;
    public class Hello {
        String appName;
        String date;
        public Hello(String appName, String date) {
            System.out.println("Hello.Hello Constructor ");
            this.appName = appName;
            this.date = date;
        }
        public Hello() {
        }
        public String getAppName() {
            return appName;
        }
        public void setAppName(String appName) {
            this.appName = appName;
        }
        public String getDate() {
            return date;
        }
        public void setDate(String date) {
            this.date = date;
        }
        @Override
        public String toString() {
            return "App{" +
                    "appName='" + appName + '\'' +
                    ", date='" + date + '\'' +
                    '}';
        }
    }`

/demo/gradle-web/build.gradle

    `buildscript {
        ext { springBootVersion = '2.1.2.RELEASE' }
        repositories { mavenCentral() }
        dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") }
    }
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'
    bootJar {
        baseName = 'gradle-web'
        version = '0.0.1-SNAPSHOT'
    }
    sourceCompatibility = 1.8
    repositories { mavenCentral() }
    dependencies {
        compile('org.springframework.boot:spring-boot-starter-actuator')
        compile('org.springframework.boot:spring-boot-starter-web')
        compile project(':gradle-core')
    }`

demo / gradle-web / src / main / java / com / gradle / mm / web / DemoApplication.java

    package com.gradle.mm.web;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication(scanBasePackages = "com.gradle.mm")
    public class DemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }

/demo/gradle-web/src/main/java/com/gradle/mm/web/HelloController.java

package com.gradle.mm.web;
import com.gradle.mm.core.DemoService;
import com.gradle.mm.core.Hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/")
class HelloController {
    @Autowired
    DemoService demoService;
    @GetMapping
    public Hello hello() {
        return demoService.getHello();
    }
}

我需要通过命令行运行它,从哪里运行(root:build.gradle或web:build.gradle)以及如何运行。

0 个答案:

没有答案