Mar*_*cka 14 java deployment rsync gradle
我有一个由Gradle Shadow插件生成的胖/超级JAR .我经常需要通过网络发送胖JAR,因此,方便我只发送文件的delta而不是cca 40 MB的数据.rsync是一个很好的工具.但是,我的源代码中的一个小变化导致最终的胖JAR发生了很大的变化,因此rsync没有尽可能多的帮助.
我可以将胖JAR转换为rsync友好的JAR吗?
我对解决方案/解决方法的想法:
可能相关的问题:
我在build.gradle中替换了原来的配置代码:
shadowJar {
zip64 true
entryCompression = org.gradle.api.tasks.bundling.ZipEntryCompression.STORED
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
manifest {
attributes 'Main-Class': 'com.my.project.Main'
}
}
Run Code Online (Sandbox Code Playgroud)
和
jar {
manifest {
attributes(
'Main-Class': 'com.my.project.Main',
)
}
}
task fatJar(type: Jar) {
manifest.from jar.manifest
classifier = 'all'
from {
configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
} {
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
}
with jar
}
Run Code Online (Sandbox Code Playgroud)
(使用此处发布的解决方案/sf/answers/2199848941/)
最终的 fatJar(即 56 MB)比 Shadow 插件为我生成的(即 35 MB)大得多。然而,最终的 jar 似乎是可 rsyncable 的(当我对源代码进行微小更改时,rsync 仅传输非常少量的数据)。
请注意,我对 Gradle 的了解非常有限,因此这只是我的观察,也许可以进一步改进。
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |