我是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)以及如何运行。