温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Gradle中怎么构建一个SpringBoot多模块项目

发布时间:2021-06-22 14:52:26 来源:亿速云 阅读:1113 作者:Leah 栏目:大数据

这篇文章给大家介绍Gradle中怎么构建一个SpringBoot多模块项目,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1. settings.gradle

/**  * rootProject.name 项目名称  * include 模块名称  */ rootProject.name = 'micro-service-framework' include 'framework-base' include 'framework-web' include 'framework-redis'

2. build.gradle
这个相当于maven中的父maven配置

buildscript {     ext {         //spring boot 版本         bootVersion = '2.0.6.RELEASE'     }     //私服地址,这个地址适用于gradle自身,比如删除,下面的springboot插件就会找不到     repositories {         maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }     }     //springboot gradle插件配置     dependencies {         classpath("org.springframework.boot:spring-boot-gradle-plugin:${bootVersion}")     } } allprojects {     //导入使用的插件     apply plugin: 'java'     apply plugin: 'maven'     //如果导入该插件,你需要指定main class,否则不能打包     //apply plugin: 'org.springframework.boot'     apply plugin: 'io.spring.dependency-management'     //这个插件用于发布jar包到私服     apply plugin: 'maven-publish'     //jdk编译版本     sourceCompatibility = 1.8     //jar包的group ,version配置     group 'net.178le.micro'     version '0.0.1-SNAPSHOT'     //私服地址,     repositories {         maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }     }     /**      * 导入了springboot,spring cloud的pom文件,能够免去自己管理版本      * PS: 在Spring官网指导上面有另外一种配置,那种配置需要配置main class,一会说明      */     dependencyManagement {         imports {             mavenBom "org.springframework.boot:spring-boot-starter-parent:${bootVersion}"             mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"         }     }     //私服发布配置     publishing {         publications {             maven(MavenPublication) {                 //指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version                 groupId = project.group                 artifactId = project.name                 version = project.version                 //如果是war包填写components.web,如果是jar包填写components.java                 from components.java                 //配置上传源码                 artifact sourceJar {                     classifier "src"                 }             }         }         repositories {             maven {                 def releasesUrl = "http://你的私服ip:8081/repository/maven-releases/"                 def snapshotsUrl = "http://你的私服ip:8081/repository/maven-snapshots/"                 url = version.endsWith('SNAPSHOT') ? snapshotsUrl : releasesUrl                 credentials {                     username = 'admin'                     password = 'admin123'                 }             }         }     } } //这里的配置对子项目生效 subprojects {     dependencies {         testCompile("org.springframework.boot:spring-boot-starter-test")         compile("com.google.guava:guava:28.0-jre")     } } //打包源码 task sourceJar(type: Jar) {     from sourceSets.main.allJava }

maven publish使用
在task -> publishing 中有如下几个命令

Gradle中怎么构建一个SpringBoot多模块项目我认为使用这两个命令就足够了
publishMavenPublicationToMavenLocal 发布项目到本地仓库
publishMavenPublicationToMavenRepository 发布项目到私服

PS:使用apply plugin: 'org.springframework.boot' build必须要指定main class

23:26:17: Executing task 'build'... > Task :framework-base:compileJava NO-SOURCE > Task :framework-base:processResources NO-SOURCE > Task :framework-base:classes UP-TO-DATE > Task :framework-base:jar SKIPPED > Task :framework-redis:compileJava UP-TO-DATE > Task :framework-redis:processResources NO-SOURCE > Task :framework-redis:classes UP-TO-DATE > Task :framework-redis:jar SKIPPED > Task :framework-web:compileJava UP-TO-DATE > Task :framework-web:processResources NO-SOURCE > Task :framework-web:classes UP-TO-DATE > Task :framework-web:bootJar FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':framework-web:bootJar'. > Main class name has not been configured and it could not be resolved * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/4.10.3/userguide/command_line_interface.html#sec:command_line_warnings BUILD FAILED in 1s 3 actionable tasks: 1 executed, 2 up-to-date Main class name has not been configured and it could not be resolved 23:26:18: Task execution finished 'build'.

framework-web 项目 3. build.gradle

dependencies {     //依赖framework-redis项目     compile project(':framework-redis')     //不需要写版本     compile('org.springframework.boot:spring-boot-starter-web')     //不需要写版本     compile('org.springframework.cloud:spring-cloud-starter-openfeign') }

framework-redis 项目 4. build.gradle

dependencies {     //依赖framework-base     compile project(':framework-base')     compile('org.springframework.boot:spring-boot-starter-data-redis') }

framework-base 5. build.gradle

//做为演示没有引入任何jar包 dependencies { }

关于Gradle中怎么构建一个SpringBoot多模块项目就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI