我认为今天是不可能的,你必须用手动提取和拉链回来。
一个可能有帮助的手动提取和压缩返回的示例:
Build.Gradle
version = '0.1.0'
buildscript {
dependencies {
classpath 'net.sf.proguard:proguard-gradle:6.0.3'
classpath 'net.sf.proguard:proguard-base:6.0.3'
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
task extractJar(type: Copy) {
def zipFile = file("${buildDir}/libs/your_project_name-${version}.jar")
def outputDir = file("${buildDir}/unpacked/")
from zipTree(zipFile)
into outputDir
}
task proguard(type: proguard.gradle.ProGuardTask) {
doFirst {
tasks.extractJar.execute();
}
configuration 'proguard.conf'
injars "${buildDir}/unpacked/BOOT-INF/classes"
outjars "${buildDir}/obfClasses"
libraryjars "${System.getProperty('java.home')}/lib/rt.jar"
libraryjars "${buildDir}/unpacked/BOOT-INF/lib"
doLast {
tasks.deleteClasses.execute();
}
}
task deleteClasses(type: Delete) {
delete "${buildDir}/unpacked/BOOT-INF/classes/"
doLast {
tasks.copyObfuscatedClasses.execute()
}
}
task copyObfuscatedClasses(type: Copy) {
from "${buildDir}/obfClasses"
into "${buildDir}/unpacked/BOOT-INF/classes/"
include 'com/**'
include '*.properties'
doLast {
tasks.copyObfuscatedJars.execute()
}
}
task copyObfuscatedJars(type: Copy) {
from "${buildDir}/obfClasses"
into "${buildDir}/unpacked/BOOT-INF/lib/"
include '*.jar'
doLast {
tasks.deleteObfuscated.execute()
}
}
task deleteObfuscated(type: Delete) {
delete 'build/obfClasses'
doLast {
tasks.repackage.execute()
}
}
task repackage(type: Zip) {
from "${buildDir}/unpacked"
entryCompression ZipEntryCompression.STORED
archiveName "your_project_name-${version}-obf.jar"
destinationDir(file("${buildDir}/libs"))
}
-ignorewarnings
-keepdirectories
-keep interface com.your_package.** { *; }
-keep class com.your_package.main{ *; }
-keep class com.your_package.model.** { *; }
-keepparameternames
-keepclassmembers @org.springframework.** class * {
*;
}
-keepclassmembers @org.springframework.** interface * {
*;
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep @org.springframework.** class *
-keepclassmembers @javax.** class * { *; }
-dontwarn org.springframework.**
-dontwarn javax.**
-dontwarn org.yaml.snakeyaml.**
-dontwarn okhttp3.**
我希望使用spring WebFlux以反应的方式流式传输一个文件。 我的endpoint应该是什么样子更具体的对象的类型是什么?
我的目标是在angular2中应用jQuery插件。它可以是任何插件,如jQuery.DataTable,bootstrap-select等。 我做的是抓取的数据服务。爵士 这里的问题是时差。在第一步,我绑定数据,在第二步,我应用插件,但我认为绑定有点慢,所以插件的代码在实际绑定html呈现之前运行。这给我带来了问题。 示例代码如下: 请建议。
在一个普通的freestyle项目中,我配置了SCM插件来指向我想要发布的Git repo,并且我启用了“Poll SCM”选项,这允许我配置一个Stash webhook来告诉Jenkins何时该repo发生了变化。这样,每当将更改推送到repo时,就可以触发作业。 但是当我使用工作流而不是自由式项目时,我需要构建的代码的SCM是在groovy工作流脚本中以编程方式指定的,这意味着它没有侦听St
当从服务层调用我的的方法时,使用一个长的时,Hibernate的跟踪日志记录会显示每个实体发出的单个SQL语句。 我是否可以强制它进行大容量插入(即多行),而不需要手动摆弄、事务等,甚至不需要原始SQL语句字符串? 致: 而是改为: 在PROD中,我使用的是CockroachDB,性能上的差异是显著的。 日志输出:
我正在尝试使用C# MIP SDK对一个PDF文件应用自定义权限保护。我在MIP SDK中找不到为文件启用自定义权限的选项。MIP SDK中是否有应用自定义权限的选项。我将感谢你的帮助。谢谢你。
RestTemplate文档中的Spring注意: 注意:从5.0开始,这个类处于维护模式,只接受微小的更改请求和bug。请考虑使用org.springframework.web.reactive.client.WebClient,它具有更现代的API,支持同步、异步和流场景。 https://docs.spring.io/spring-framework/docs/current/javadoc