久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

排除發布構建類型的資產

Exclude assets for release build type(排除發布構建類型的資產)
本文介紹了排除發布構建類型的資產的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在使用 gradle 構建的應用程序中導入一個 android 庫,如下所示:

I'm importing an android library in an application built with gradle, like that:

dependencies {
    compile 'com.example:great-lib:0.1-SNAPSHOT'
}

此庫僅包含要在 webview 中使用的資產、js、css 和圖像,布局如下:

This library contains only assets, js, css and images to be used in a webview, with a layout like that:

assets/
|-> great.css
|-> great.min.js
|-> great.min.js.map
|-> js/
|   |-> plop.js
|   |-> foo.js
|   ...
|-> img/
|   ...

js 文件夾包含源文件(用于源映射).我想在調試版本中包含它和 .map 文件,并且在發布版本中只有縮小的 js,但我找不到這樣做的方法.

The js folder contains source files (to be used with source maps). I would like to include it and the .map file for the debug builds, and have only the minified js in release builds, but I can't find a way to do that.

到目前為止,我已經嘗試過:

So far I've tried :?

android {
    // this doesn't exclude anything
    packageOptions {
        exclude 'assets/js'
    }
    buildTypes {
        release {
            // this does exclude the js folder, but in both release and debug
            aaptOptions {
                ignoreAssetsPattern "!js"
            }
        }
    }
}

知道我想要的是否可以實現,如果可以,如何實現?

Any idea if what I want is possible to achieve, and if so how?

(我也想過發布兩個版本的庫(great-libgreat-lib-debug),并且在中有依賴debugCompilereleaseCompile,但我寧愿避免這種情況并發布單個版本)

(I've also thought of publishing two versions of the library (great-lib and great-lib-debug), and have the dependency in debugCompile and releaseCompile, but I'd prefer avoiding that and publishing a single version)

推薦答案

我最終做了以下事情:

android.applicationVariants.all { variant ->

  if (variant.name.contains('Release')) {
    // exclude source and sourcemap from release builds
    def noJsSourceTask = task("delete${variant.name}JsSource", type: Delete) {
      delete "${buildDir}/intermediates/assets/${variant.dirName}/js"
      delete "${buildDir}/intermediates/assets/${variant.dirName}/great.min.js.map"
    }
    variant.mergeAssets.finalizedBy noCeJsSourceTask
  }
}

它工作正常,但有幾件事我不太喜歡:

It works ok, but there are a few things I don't really like:

  • 我正在處理任務完成后生成的文件(finalizedBy),因此它不適用于最新"檢查.但這僅適用于發布版本,我更頻繁地進行調試
  • 要刪除的文件的路徑是手動構建的.我不確定它是否足夠通用,可以按原樣在其他項目中重用
  • 我根據它們的名稱選擇變體.我會喜歡更有條理的東西.
  • I'm touching at the files produced by a task after it is done (the finalizedBy), so it doesn't work well with "up-to-date" checking. But it's only for release builds, I'm doing debug ones more often
  • the path of the files to delete is manually built. I'm not sure if it's generic enough to be reused in other projects as-is
  • I'm selecting the variants based on their name. I would have liked something more structured.

這篇關于排除發布構建類型的資產的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 国产a级大片| www久久久久| 精品视频在线观看免费 | 在线观看黄网站 | 成人影片在线 | 中文字幕国产视频 | 久久久三级 | 成人视屏在线观看 | 五月天在线观看 | 成人在线视频免费 | 99福利视频 | www.com国产| 亚洲www啪成人一区二区麻豆 | 在线观看中文字幕 | 黄色成人小视频 | 黄色三级av| 自拍偷拍亚洲 | 黑人操亚洲女人 | www99热 | 黄色大片av | 久久久久婷婷 | 欧美黄色录像 | 久久综合99| 免费网站观看www在线观看 | 中文字幕欧美激情 | 国产精品视频专区 | 99国产精品99久久久久久 | 蜜臀av性久久久久av蜜臀妖精 | 日本天堂在线观看 | 懂色av蜜臀av粉嫩av分享 | 国产精品羞羞答答 | 日本不卡高字幕在线2019 | 午夜成人在线视频 | 日日操天天操 | 成人特级毛片 | 免费成人在线观看视频 | 欧美日韩精品一区 | 99久热 | 日韩大片在线观看 | 中文在线字幕免费观看 | 成人免费网站在线观看 |