android– 使用Cordova gradle包装器时指定不同的存储库

android– 使用Cordova gradle包装器时指定不同的存储库,第1张

概述我正在使用CordovaAndroid4.0.0,它使用gradle包装器来构建.我需要指定一个不同于mavenCentral的存储库.我不能简单地修改build.gradle文件,因为它是由Cordova自动生成的.因为它使用了Cordova指定的包装器分发,所以我无法在分发中添加/init.d.我已经尝试添加一个似乎没有被使用的U

我正在使用Cordova Android 4.0.0,它使用gradle包装器来构建.我需要指定一个不同于mavenCentral的存储库.我不能简单地修改build.gradle文件,因为它是由Cordova自动生成的.因为它使用了Cordova指定的包装器分发,所以我无法在分发中添加/init.d.我已经尝试添加一个似乎没有被使用的USER_HOME / .gradle / init.gradle文件.在使用我无法控制的包装器时,是否还有其他方法可以指定init文件?

编辑:
作为现在的解决方法,我添加了一个after_prepare钩子,它将build.gradle文件中任何位置的文本“mavenCentral()”更改为我需要使用的repo.必须有一个更好的基于gradle的解决方案,但……

解决方法:

我们使用离子并拥有我们自己的nexus存储库,而不是mavenCentral.我们最终创建了一个钩子来解决这个open issue

通过添加一个钩子:

module.exports = function(ctx) {    'use strict';    var fs = ctx.requireCordovaModule('fs'),        path = ctx.requireCordovaModule('path'),        deferral = ctx.requireCordovaModule('q').defer(),        replaceStream = require('replacestream'),        async = require('async');    var platformRoot = path.join(ctx.opts.projectRoot, 'platforms/androID');    var gradlefiles = [path.join(platformRoot, 'build.gradle'), path.join(platformRoot, 'Cordovalib', 'build.gradle')];    async.each(gradlefiles, function(f, cb) {        fs.readfile(f, 'utf8', function(err, data) {            if (err) {                cb(err);                return;            }            var result = data.replace(/mavenCentral\(\)/g, 'maven{url "http://nexus.corp.aal.au/content/groups/public-ad"}');            fs.writefile(f, result, 'utf8', cb);        });    }, function(err) {        if (err) {            deferral.reject();        } else {            deferral.resolve();        }    });    return deferral.promise;}
总结

以上是内存溢出为你收集整理的android – 使用Cordova gradle包装器时指定不同的存储库全部内容,希望文章能够帮你解决android – 使用Cordova gradle包装器时指定不同的存储库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1107901.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存