将一个略微复杂的工作内容编入VBA,我们可能需要许多宏拼在一起运行才能实现。那么如何按照自己想要的顺序依次运行这些宏,实现我们需要的结果? 一个办法是编写一个新的宏,分别按顺序call你需要运行的宏。...call的方法有几种,比较简单的是以下两种, call 宏1 call 宏2 或者省略call,直接 宏1 宏2 这样,你需要调用的宏就会按照顺序执行。...但是,当你调用的宏非常多的时候,可能有几十个,以上还是有点麻烦。...最后写个循环汇总以上所有宏 Sub huizong() Dim q For q = 1 To 15 Application.Run "hong" & q Next q End Sub 运行最后这个汇总宏,你的前
RedHat7上安装OpenLDA并配置客户端》、《2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户》、《3.如何RedHat7上实现OpenLDAP的主主同步》、《4...本篇文章主要介绍如何在RedHat7的OpenLDAP中将一个用户添加到多个组中。...4.添加测试用户及用户组 ---- 这里我们添加一个测试用户faysontest2,将faysontest2用户添加到faysontest2和faysontest3组中。...用户的ldif文件中包含了用户默认的用户组faysontest2,在文件中我们使用gidNumber来添加faysontest2的用户组。...如果需要用户拥有多个组,只需要在需要加入组的条目下增加一条记录memberUid: faysontest2,faysontest2即为你用户的uid。 一个组条目下支持多个memberUid属性。
你可能想创建自己的依赖库,这样你就可以在没有将其发布到公有或私有仓库时在多个项目中复用。在这种情况下,你不能使用任何在线资源,而是必须通过其他方式来添加依赖。...应用项目将生成一个可被安装和运行在Android 设备上的APK,依赖项目则生成一个.aar 文件。该文件可被Android 应用项目用作依赖库。...一种是在项目中当作一个模块,另一种是创建一个可在多个应用中复用的.aar 文件。...为了在Android模块中使用依赖库,你需要在Android 模块的build.gradle 文件中添加一个依赖库: dependencies { 其会在应用模块的类路径中包含依赖库的输出。...在构建依赖库时,模块目录下的build/output/aar/ 文件夹将会生成.aar 文件。
这样配置完成之后,在task 任务列表中,就可以看到 upload/uploadArchives 任务。 这里配置的仓库地址是一个本地路径,即把 aar 发布到本地的一个文件夹中。...包的方式: * 通过依赖生成 aar 包任务,如:**afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }** * 通过指定生成的...包的发布 在上面的步骤中,publications 闭包中的有些配置还是不够优雅的,比较繁琐,如: 配置发布的内容(即配置上传的 aar 文件),是通过如下两种方式: * 依赖生成aar包的Task...任务,如:**afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }** * 通过指定生成的aar 文件路径,如:**artifact...Android Gradle 插件会为应用或库模块中的每个构建变体工件创建一个组件,您可以使用它来自定义要发布到 Maven 代码库的发布内容 Android 插件所创建的组件取决于模块是否使用应用或库插件
Gradle 是构建工具,相当于一个构建环境;而 Gradle 插件本质上就是具体的构建任务,我们将一个构建任务模块化抽离出来,提供给其他项目复用,就是一个 Gradle 插件。...因为在大型软件项目中,往往是多个团队(或多个同学)协同开发不同模块,例如 A 模块依赖 B 模块,两个模块并行开发。...执行任务,完成后项目中会新增一个repository目录,里面就是新发布的组件。...方法 1:直接依赖改为间接依赖:新建模块封装 aar,对外部提供外观 API 方法 2:统一将 aar 文件放置在一个文件夹,并在项目级 build.gradle 中声明仓库地址: 项目级 build.gradle...'aar') // 不允许间接依赖 aar 方法 3:二次打包 aar:以上方法在单工程项目下表现良好,但在如果你们的项目包括多个工程,那还是有点麻烦的,有办法优化吗?
0 写在前面 过去十年深度学习的发展,极大地推动了多媒体领域视觉与语言之间跨模态分析的进步。然而,目前还没有一个开源的代码库以统一和模块化的方式来支持训练和部署跨模态分析任务的神经网络模型。...在这项工作中,作者提出了X-modaler——一个通用和高性能的代码库,它将SOTA的跨模态任务流程封装到几个通用阶段 。...同时,由于有些阶段(如跨模块态交互)的有效模块化设计是在不同的视觉语言任务中共享的,因此x-modaler可以扩展到跨模态分析中其他任务,包括视觉问题回答、视觉常识推理和跨模态检索。...Cross-modal Retrieval Cross-modal Retrieval的目标是根据定一个模态样本,从库中搜索另一个模态的对应样本。...5 总结 在本文中,作者提出了一个用于跨模态分析的通用的和高性能的代码库X-modaler。这个代码库统一了SOTA的视觉语言技术中的常用代码模块,这些模块以标准化和用户友好的方式组织起来。
前言 前段时间,我在实现gradle多模块构建遇到一个问题,以前我们基本上是以jar包形式让开发者集成到工程中使用,但自从Android Studio中有了多module的概念,而我们的SDK也是分了多个模块进行构建的...,但我们这里有个问题就是模块之间是相互关联的,不能针对每个模块单独打包,而每个module都会生成对应的aar,但并不会把依赖的module代码打进去,别问我为什么知道,你将aar后缀改为zip,然后反编译...它的文件后缀名是.aar,它本身是一个zip文件,强制包含以下文件: /AndroidManifest.xml /classes.jar /res/ /R.txt 另外,AAR文件可以包括以下可选条目中的一个或多个...如果你只是简单实用一些类库,你可以直接使用*.jar文件,而如果你想既想使用类库,又想实用资源,那么你就可以创建一个Android Library,使用它生成的*.aar文件。...module生成的aar合成一个,大家可以新建一个demo工程来测试下 ?
Project范围的,另一个是Module范围的,由于一个Project可以有多个Module,所以每个Module下都会对应一个build.gradle。...5.2 模块的build.gradle //声明插件,表明这是一个Android程序;如果是库,那么应当是com.android.library apply plugin: 'com.android.application...声明第三方maven库 如果项目中需要的一些库文件不再中央仓库中,而是在某个特定地址里,那么就需要在Project中的build.gradle中的allprojects结点下或者直接配到某个模块中:...compile 'com.aaa.xxx:core:1.0.1@aar' 6.6 将库导出为aar 首先,你的项目必须是一个库项目,之后在build.gradle中进行配置: apply plugin.../gradlew assembleRelease 生成的aar放在/build/output/aar文件当中 6.7 引用本地aar 首先,将aar文件拷贝到对应目录下,然后在该模块的build.gradle
在最顶层的app模块中,通过Gradle插件,将所有aar、源码中的RouteMap__开头的类统一集中到TheRouterServiceProvideInjecter类中。...加载以后的路由表会被保存到一个支持正则匹配的 Map 中,这也是TheRouter允许多个path对应同一个落地页的原因。...编译期解析注解生成路由表首先取 业务模块 aar 中的路由表再取 主app module 代码中的路由表最后取 assets/RouteMap.json 文件中声明的路由表。...图片 七、一键切换源码与 AAR7.1 模块化支持的 Gradle 脚本在模块化开发过程中,如果没有采用分仓,或采用了分仓但依然使用 git-submodule 的方式开发,应该都会遇到一个问题。...)九、总结TheRouter 并不仅仅是一个小巧灵活的路由库,而是一整套完整的 Android 模块化解决方案,能够解决几乎全部的模块化过程中会遇到的问题。
在这个脚本中最好的一点,就是你所需要的只是添加一行到你的build.gradle中,然后Gradle就会从一个远程仓库中下载与之相关的依赖关系的库,以保证它的Classes对你的Project的是可用的...不同的是,Application工程会生成出来一个APK,而Library会生成出来一个AAR文件。这个文件可以作为Project的Library引用。...' 我们有两种方法添加Library工程到Application中: 把Library工程作为Module加入Project 创建一个AAR文件,可以被多个Application的复用Lib 如果设置Library...AAR文件在assemble任务执行后,会在build/output/aar/目录下生成,只要Module构建完成后,也都会生成。...每一个配置都不仅仅会添加到classpath中,而是会被添加到APK中。 apk配置项仅仅会把依赖库添加到包中,而不会把它添加到编译的classpath中。
第一阶段,大家肯定都是会把公共模块什么的都抽取出来,封装成aar,之后通过maven的方式引入。...这个时候会先抽象一个壳工程,然后把所以的子项模块用aar的方式引入这个壳,之后会把每个业务放在一个仓库内,这样多个业务之间就不会出现代码冲突之类的问题了。 这个时候会出现另外一些更困扰的问题。...当项目使用了Gradle Repo调整之后,我们可以随意的拔插我们需要的模块,同时把多个模块仓库组合在一起同时编译。...gradle插件,然后生成一个自己的task任务,同步命令被执行的时候,我们就通过接口调用或者git操作的方式去获取远端的gradle,然后更改项目的gralde configurations.all的方式...,思路核心就是一切三方库的版本以远端的branch作为标准。
起因 各位安卓开发的各位小伙伴,大家肯定要用到很多类库。 如果,我们有一些特殊需求,就是一个项目的某个模块的功能给其他项目使用。我们直观的是想到依赖module呗。...确实可以,如果项目模块依赖过多呢?我们可以选择更好的jar、so、aar方式进行管理,使项目更加的清晰分明。 名词 jar:故名思议,java类库。不包含任何其他东西。...so:有过c、c++开发的小伙伴一定不陌生。动态链接库,只包含c、c++ aar:二进制归档文件,包含jar、so以及res、assets等各种资源。...文件夹直接子层级so文件夹以及内部文件,如下所示 图片.png 注意:我们不仅需要生成so还需要生成对应的jar,因为我们的so是动态链接库,包含c、c++。...总结 使用jar、so、aar可以更好的细化我们的项目,特别是针对包含c、c++代码的项目,一个项目负责生成so以及jar并测试,一个项目负责调用native代码。 希望本文能帮到大家~
,推送,tinker等 这些其实是可以封装在相应gradle文件中,然后通过apply from引入 举个例子,例如在我们使用greendao数据库时,需要在build.gradle中指定版本 这种时候应该新建一个...在 main 目录下新建 res_core, res_feed(根据业务模块命名)等目录,在res_core中新建res目录中相同的文件夹如:layout、drawable-xxhdpi、values等...,不必像以前一样一个个去找 AAR依赖与源码依赖快速切换 当我们的项目中Module越来越多,为了加快编译速度,常常把Module发布成AAR,然后在项目中直接依赖AAR 但是我们有时候又需要修改AAR...,并修改目录名为retrofit-source,以便区分 在settings.gradle文件中添加需要修改的aar库的源码project include ':retrofit-source' project...依赖与源码依赖间的互换了 这样做的主要优点在于 不需要修改原有的依赖配置,而是通过全局的配置,利用本地的源码替换掉aar,侵入性低 如果有多个Module依赖于同一个aar,不需要重复修改,只需在根目录
KMM SDK层:如alog、PlatformMMKV写成一个SDK可以供其他KMM模块(business)使用。...iOS sdkframework层:Kotlin/Native构建一个framework时,产物是二进制,也包含了Kotlin/Native的基础库、Runtime,会使包大小增加1M+左右,而且多个Kotlin...当然如果依赖了一些库如ktor网络库,包也会变大,避免这个问题也可以不用依赖ktor,直接依赖现有的网络库来实现一个KMM SDK。...6.1 sdkframework模块的iosMain需要有一个kotlin文件 如果iosMain没有kotlin文件,将无法生成 iOS framework,为其添加一个文件即可,如SDKTest.kt...头文件中,这样iosApp才可以使用这几个模块的类和方法。
debug版本的aar包了,我们可以通过如上方式配置不同的发布版本,只要我们配置的这个名字是合法存在的即可--也就是Assemble任务能够打包出来的aar包。...有朋友可能要问了,如果想同时发布多个版本的aar包以供不同的项目引用怎么办?...这是可以做到的,默认情况下是不能同时发布多个aar包的,我们可以开启。...这时候就是告诉Android Gradle插件我们这个库工程要同时发布不同的aar,这时候Android Gradle就会生成多个aar以供被其他项目引用,下面看下我们怎么分别引用他们。...发布到Nexus Maven库之后,我们就可以像引用jcenter中的类库一样引用他们,要使用他们,我们首先得配置我们的仓库,因为我们新增了一个我们自己的私有Maven库,这个使用要告诉Gradle,不然它不知道这个私有
APT编译期生成一个描述类,gradle插件聚合所有的描述类,应用启动的时候再加载描述类,就这么一个流程。TheRouter 文档里面写的非常详细了,这里主要讲讲路由在现代APP中要怎么用。...其实,做模块化最麻烦的两个点,第一个是依赖解耦,第二个应该就是独立模块的初始化问题了。...可以同时依赖多个任务,用英文逗号分隔,空格可选,会被过滤:dependsOn = "mmkv, config, login",默认为空,应用启动就被调用 async:是否要在异步执行此任务,默认false...模块化支持,Gradle脚本一键切换源码引用 在模块化开发过程中,如果没有采用分仓,或采用了分仓但依然使用 git-submodule 的方式开发,应该都会遇到一个问题。...TheRouter 中提供了一个 Gradle 脚本,只需要在开发本地的local.properties文件中声明要参与编译的module,其他未声明的默认使用aar编译,这样就能灵活切换源码与aar,
其次,我开始正式接触React Native啦,撒花again~ RN在我们的产品中也是比较重要的模块,首页以及多个二级界面都是RN完成的,体验还好,但是带来的crash也不少!...作为一个接到RN升级任务的RN小白,下面我就大致介绍下自己完成这个任务时遇到的坑,希望能有所帮助。...(1)对于Android来说,项目中依赖的是RN源码下ReactAndroid项目构建得到的aar文件(你还可以继续精简成一个jar文件)。 如何生成这个aar文件呢?...2.更新RN的aar文件之后,除了需要修改部分API的调用方式之外,还要修改gradle脚本中依赖库的版本号以及混淆规则!...中,然后删除x86和armeabi-v7a目录,最后重新压缩生成aar文件。
aarName',ext:'aar') 但是如果aar中包含了远程依赖,例如aar中依赖了第三方库: implementation 'com.squareup.okhttp3:okhttp:3.10.0...' 若采用上面的方法引用则在运行时会找不到okhttp3 库中的类。...针对这种问题可以采用maven仓库来解决,我们可以将aar生成到本地或远程maven仓库,再引用仓库中的aar。或上传maven仓库到服务端或着私服等都可....directory:--> $rootDir/repo" } } } publishToMaven.setGroup('SDKPush') 点击同步gradle后在module模块下的...双击publishToMaven 的task任务即可根据配置上传. 本地目录上传会在根目录生成repo仓库,如图所示: ?
eng: 指该模块只在eng版本下才编译 tests: 指该模块只在tests版本下才编译 optional:指该模块在所有版本下都编译 include $(BUILD_PACKAGE) 表示生成一个...apk,它可以多多种类型 BUILD_SHARED_LIBRARY #生成一个动态库 BUILD_STATIC_LIBRARY #生成一个静态的库 BUILD_PACKAGE #生成一个APK ---...引用我们声明 jar 包的变量 引用我们上面声明的 CommonUtil LOCAL_STATIC_JAVA_LIBRARIES := CommonUtil 引用多个 jar 包 引用多个 jar 包的方式其实跟引用...如果我们在编译 apk 的时候,想把这些 so 库 打包进去,在 mk 文件中要怎样配置呢?...一般来说,会有以下两种写法 第一种写法 第一步,直接在 mk 文件中配置以下内容,配置我们 so 库文件的所在位置,可以在文件的开头或者结尾。
就像公司有10多个App,可以把所有App都需要用的东西封装到库模块中,例如网络请求、在线加载图片等。 这10多个项目都依赖这个库,而不是10多个项目都写一遍网络请求的代码,并且用库的方式方便修改。...如果在两个模块中均定义了给定资源ID,将使用应用中的资源。 如果多个AAR库之间发生冲突,将使用依赖项列表首先列出(位于dependencies块顶部)库中的资源。 ?...这个地方 为了避免常用资源ID的资源冲突,请使用在模块(或在所有项目模块)中具有唯一性的前缀或其他一致的命名方案。 • 库模块可以包含JAR库:可以开发一个自身包含JAR库的库模块。...• 每个库模块都会创建自己的R类:在构建相关应用模块时,库模块将先编译到AAR文件中,然后添加到应用模块中。因此,每个库都有其自己的R类,并根据库的软件包名称命名。...• 从主模块和库模块生成的R类会在所需的所有软件包(包括主模块的软件包和库的软件包)中创建。 依赖库的方法主要有两种:一种是本地依赖,另一种是在线依赖。
领取专属 10元无门槛券
手把手带您无忧上云