小编Nic*_*ola的帖子

每个变种的Android Gradle自定义任务

我有一个使用Gradle构建的Android应用程序,其中包含BuildTypes和Product Flavors(变体).我可以运行此命令来构建一个特定的apk:

./gradlew testFlavor1Debug
./gradlew testFlavor2Debug
Run Code Online (Sandbox Code Playgroud)

我必须在每个变体的build.gradle中创建一个自定义任务,例如:

./gradlew myCustomTaskFlavor1Debug
Run Code Online (Sandbox Code Playgroud)

我为此创建了一个任务:

android.applicationVariants.all { variant ->
    task ("myCustomTask${variant.name.capitalize()}") {
        println "*** TEST ***"
        println variant.name.capitalize()
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是所有变种都调用了这个任务,而不是我正在运行的唯一变种.输出:

./gradlew myCustomTaskFlavor1Debug

*** TEST ***
Flavor1Debug
*** TEST ***
Flavor1Release
*** TEST ***
Flavor2Debug
*** TEST ***
Flavor2Release
Run Code Online (Sandbox Code Playgroud)

预期产量:

./gradlew myCustomTaskFlavor1Debug

*** TEST ***
Flavor1Debug
Run Code Online (Sandbox Code Playgroud)

如何定义自定义任务,动态,每个变体,然后使用正确的变体调用它?

groovy android gradle android-productflavors

14
推荐指数
1
解决办法
4190
查看次数

浏览器缓存请求/响应,没有任何 Cache-Control 标头

我在 SPA Web 应用程序和 REST API 后端遇到浏览器缓存问题。我可以在打开开发人员工具的情况下在 Firefox 和 Safari 上重现它:我确保缓存未禁用。

当我进入第一个特定页面,该页面只是从 REST API 获取并显示对象时,我使用“硬刷新”(Mac 上的 CMD+R)来完成此操作。我看到以下标题:

第一个请求:

Host: localhost:5000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: application/json, text/plain, */*
Accept-Language: en,it;q=0.7,fr;q=0.3
Accept-Encoding: gzip, deflate, br
Origin: http://localhost:3000
DNT: 1
Connection: keep-alive
Referer: http://localhost:3000/literature/sde5e-zeb98
Cookie: ...
If-Modified-Since: Fri, 10 Jul 2020 16:19:24 GMT
If-None-Match: "2"
Cache-Control: max-age=0
Run Code Online (Sandbox Code Playgroud)

(注意Cache-Control标题,由于硬刷新而自动添加)

回复:

HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 6128
ETag: "2"
Last-Modified: Fri, 10 Jul 2020 …
Run Code Online (Sandbox Code Playgroud)

http-caching request-headers http-headers

1
推荐指数
1
解决办法
2328
查看次数