Cod*_*ody 5 java gradle maven spring-boot
首先,请原谅我糟糕的英语。:P
项目结构如下:
parent
|-- admin // spring boot web application for management.
| |-- client // SDK for other applications. publish it to maven.
| | |-- src
| | `-- build.gradle
| |-- public // common part of admin and client of it. Such as DTOs.
| | |-- src
| | `-- build.gradle
| |-- src
| `-- build.gradle
|-- common // common part of admin and server.
| |-- src
| `-- build.gradle
|-- public // common part of admin, server and clients of them.
| |-- src
| `-- build.gradle
|-- server // spring boot web application for normal user.
| |-- client // SDK for other applications. publish it to maven.
| | |-- src
| | `-- build.gradle
| |-- public // common part of server and client of it. Such as DTOs.
| | |-- src
| | `-- build.gradle
| |-- src
| `-- build.gradle
|-- build.gradle
`-- settings.gradle
Run Code Online (Sandbox Code Playgroud)
当我发布:server:client
到maven时,它会将:server:public
pom文件作为依赖项放入。这需要我也分别发布:server:public
和:public
maven。
但我想要的是作为:server:client
一个库并包含其中的类:server:public
文件:public
。
另外,构建:server
为 Spring Boot 应用程序时也存在类似的问题。它将依赖的项目构建到 jar 中,然后将它们打包到:server
. 而不是打包他们的类文件。
是否有可能让 gradle 按我的预期工作?或者有没有更好的设计可以满足代码的复用而无需发布多个库?
小智 2
是的,你可以用 gradle 做你想做的事。您可以使用 gradle 插件来完成创建单个 jar 的工作,也可以使用自定义任务从不同的子项目中手动获取类文件并从中创建单个工件。
标准gradle fat jar插件 -shadow插件
如果你想手动执行 -
task singleJar(type: Jar) {
baseName = 'app-jar'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5249 次 |
最近记录: |