2016-11-28 219 views
0

我正在通過gradle(3.2)多項目與Spring引導1.4.2.RELEASE在MACOS Sierra 10.12.1上進行挖掘。Spring引導的多項目的Gradle構建失敗

這裏是在github項目: https://github.com/isian8814/demospring.git

這裏是我的項目結構:

Root project 'demospring' 
+--- Project ':model' 
\--- Project ':rest' 

這裏的build.gradle根項目:

buildscript { 
    ext.springBootVersion = '1.4.2.RELEASE' 

    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion") 
    } 
} 

allprojects { 
    group 'com.springboot.demo' 
    version '1.0-SNAPSHOT' 
} 

subprojects { 
    apply plugin: 'java' 
    apply plugin: 'org.springframework.boot' 

    sourceCompatibility = 1.8 
    targetCompatibility = 1.8 

    compileJava.options.encoding = 'UTF-8' 

    dependencies { 
     testCompile('org.springframework.boot:spring-boot-starter-test') 
    } 

    springBoot { 
     mainClass = 'bookmarks.Application' 
    } 

    repositories { 
     mavenCentral() 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '3.2' 
} 

這裏是構建。休閒項目:

dependencies { 
    compile project(':model') 
    compile('org.springframework.boot:spring-boot-starter-web') 
} 

這裏是一個樣板工程的build.gradle:

dependencies { 
    compile('org.springframework.boot:spring-boot-starter-data-jpa') 
    compile('org.springframework.boot:spring-boot-starter-web') 
    runtime('com.h2database:h2') 
} 

這裏是我的settings.gradle:

rootProject.name='demospring' 

include 'model' 
include 'rest' 

我行運行./gradlew:型號:建立和./gradlew :休息:建立

./gradlew :rest:build 
:model:compileJava UP-TO-DATE 
:model:processResources UP-TO-DATE 
:model:classes UP-TO-DATE 
:model:jar 
:rest:compileJava 
:rest:processResources UP-TO-DATE 
:rest:classes 
:rest:findMainClass 
:rest:jar 
:rest:bootRepackage 
:rest:assemble 
:rest:compileTestJava 
Note: /Users/minchanglong/Documents/SourceTree/demospring/rest/src/test/java/bookmarks/BookmarkRestControllerTest.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
:rest:processTestResources UP-TO-DATE 
:rest:testClasses 
:rest:test 
2016-11-29 09:20:36.426 INFO 1692 --- [  Thread-5] o.s.w.c.s.GenericWebApplicationContext : Closing org.s[email protected]68250d: startup date [Tue Nov 29 09:20:32 EST 2016]; root of context hierarchy 
2016-11-29 09:20:36.429 INFO 1692 --- [  Thread-5] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 
2016-11-29 09:20:36.429 INFO 1692 --- [  Thread-5] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000227: Running hbm2ddl schema export 
2016-11-29 09:20:36.432 INFO 1692 --- [  Thread-5] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000230: Schema export complete 
:rest:check 
:rest:build 

BUILD SUCCESSFUL 

Total time: 22.215 secs 

但是我不能夠運行./gradlew乾淨的構建

這是錯誤:

./gradlew clean build 
:model:clean 
:rest:clean 
:model:compileJava 
:model:processResources UP-TO-DATE 
:model:classes 
:model:findMainClass 
:model:jar 
:model:bootRepackage 
:model:assemble 
:model:compileTestJava UP-TO-DATE 
:model:processTestResources UP-TO-DATE 
:model:testClasses UP-TO-DATE 
:model:test UP-TO-DATE 
:model:check UP-TO-DATE 
:model:build 
:rest:compileJava 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:19: error: cannot find symbol 
     CommandLineRunner init(AccountRepository accountRepository, 
          ^
    symbol: class AccountRepository 
    location: class Application 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:20: error: cannot find symbol 
         BookmarkRepository bookmarkRepository) { 
         ^
    symbol: class BookmarkRepository 
    location: class Application 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:38: error: cannot find symbol 
     private final BookmarkRepository bookmarkRepository; 
        ^
    symbol: class BookmarkRepository 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:40: error: cannot find symbol 
     private final AccountRepository accountRepository; 
        ^
    symbol: class AccountRepository 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:43: error: cannot find symbol 
     BookmarkRestController(BookmarkRepository bookmarkRepository, 
          ^
    symbol: class BookmarkRepository 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:44: error: cannot find symbol 
                AccountRepository accountRepository) { 
               ^
    symbol: class AccountRepository 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:50: error: cannot find symbol 
     Collection<Bookmark> readBookmarks(@PathVariable String userId) { 
       ^
    symbol: class Bookmark 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:56: error: cannot find symbol 
     ResponseEntity<?> add(@PathVariable String userId, @RequestBody Bookmark input) { 
                     ^
    symbol: class Bookmark 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:76: error: cannot find symbol 
     Bookmark readBookmark(@PathVariable String userId, @PathVariable Long bookmarkId) { 
     ^
    symbol: class Bookmark 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:25: error: cannot find symbol 
                 Account account = accountRepository.save(new Account(a, 
                 ^
    symbol: class Account 
    location: class Application 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:25: error: cannot find symbol 
                 Account account = accountRepository.save(new Account(a, 
                            ^
    symbol: class Account 
    location: class Application 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:27: error: cannot find symbol 
                 bookmarkRepository.save(new Bookmark(account, 
                        ^
    symbol: class Bookmark 
    location: class Application 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:29: error: cannot find symbol 
                 bookmarkRepository.save(new Bookmark(account, 
                        ^
    symbol: class Bookmark 
    location: class Application 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:62: error: cannot find symbol 
             Bookmark result = bookmarkRepository.save(new Bookmark(account, 
             ^
    symbol: class Bookmark 
    location: class BookmarkRestController 
/Users/minchanglong/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/BookmarkRestController.java:62: error: cannot find symbol 
             Bookmark result = bookmarkRepository.save(new Bookmark(account, 
                        ^
    symbol: class Bookmark 
    location: class BookmarkRestController 
15 errors 
:rest:compileJava FAILED 

FAILURE: Build failed with an exception. 

*** What went wrong: 
Execution failed for task ':rest:compileJava'. 
> Compilation failed; see the compiler error output for details.** 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

* Exception is: 
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':rest:compileJava'. 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55) 
     at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:61) 
     at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
     at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 
     at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:45) 
     at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) 
     at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 
     at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 
     at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:233) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215) 
     at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:74) 
     at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:55) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113) 
     at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 
     at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) 
     at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) 
     at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30) 
     at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:197) 
     at org.gradle.internal.Factories$1.create(Factories.java:25) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:194) 
     at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:36) 
     at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:118) 
     at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:112) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112) 
     at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:98) 
     at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66) 
     at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) 
     at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 
     at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75) 
     at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) 
     at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:44) 
     at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:29) 
     at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67) 
     at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) 
     at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) 
     at org.gradle.util.Swapper.swap(Swapper.java:38) 
     at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) 
     at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) 
     at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) 
     at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:293) 
     at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) 
     at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) 
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details. 
     at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:48) 
     at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33) 
     at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:104) 
     at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:53) 
     at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38) 
     at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35) 
     at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25) 
     at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:188) 
     at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:169) 
     at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:112) 
     at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76) 
     ... 69 more 


BUILD FAILED 

Total time: 1.576 secs 

有什麼想法嗎?

謝謝。

+0

你有沒有settings.gradle文件的根目錄和它是什麼? – Stanislav

+0

我確實有一個settings.gradle。它看起來像: rootProject.name ='demospring' 包括'模型' 包括'休息' – isian8814

回答

0

我相信其餘項目也應該有dependencies部分而不是restdependencies

正如@Stanislav提到的,你也應該有settings.gradle文件的根目錄與此內容:

​​

如果你有興趣,這裏是我的Github repository with working Spring Boot multimodule project

順便說一句,該回購也有所有子模塊測試覆蓋聚合。 Here is blog post belonging to that repository

+0

我已經添加我的項目在git中心。你可以試試..我在春季啓動1.4.2.RELEASE與gradle 3.2 https://github.com/isian8814/demospring.git – isian8814