久久久久久久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 庫的傳遞依賴)
主站蜘蛛池模板: 日韩视频精品在线 | 青青久久 | 在线观看亚洲精品 | 一级大黄 | 成人综合视频在线 | 国产成人福利 | 色婷婷av一区二区三区软件 | 日韩精品一区二区三区在线观看 | 日日摸夜夜爽人人添av | 亚洲视频在线免费观看 | 久久久久久久夜 | 欧美二区乱c黑人 | 日本不卡免费新一二三区 | 狠狠草视频| 欧美精品成人 | 成人做爰www免费看视频网站 | a天堂在线 | 性国产丰满麻豆videosex | 日韩欧美亚洲 | 国产免费人成xvideos视频 | 日本午夜在线视频 | 国产午夜精品一区二区三区在线观看 | 在线观看的av | 欧美日韩在线一区 | 自拍偷拍精品 | 日韩一区二区三区av | 国产精品成人一区二区三区夜夜夜 | 亚洲欧美精品在线观看 | 黄视频国产 | 欧美精品一二三 | 欧美区精品 | 成人3d动漫一区二区三区91 | 欧美婷婷 | 天天干,夜夜操 | 超碰人人做| 亚洲综合区| 国产丝袜一区二区三区免费视频 | 在线看成人av | 天天爽天天操 | 米奇7777狠狠狠狠视频 | 欧美淫片 |