implementation和compileOnly files的区别

implementationcompileOnly files 是 Gradle 编译工具中用于定义依赖项的两个不同配置选项。

  1. implementationimplementation 是一种配置选项,用于指定项目编译和运行时都需要依赖的库。这意味着依赖项将在编译时被传递并打包到最终的应用程序中。其他依赖该库的模块也可以访问到该依赖项。

例如,在 Gradle 构建脚本中,你可以使用如下方式声明依赖项:


implementation 'com.example:library:1.0.0'

这将指定项目需要依赖名为 "com.example:library" 的库,版本为 1.0.0。

  1. compileOnly filescompileOnly files 是一种配置选项,该选项仅在编译时使用,并不会被传递或打包到最终的应用程序中。这意味着依赖项仅在编译时被引用,而在运行时则由项目的构建环境或其他方式提供。

例如,在 Gradle 构建脚本中,你可以使用如下方式声明依赖项:


compileOnly files('libs/library.jar')

这将指定项目需要依赖位于 "libs" 目录中的名为 "library.jar" 的库文件。该库文件将在编译时被使用,但不会被传递到最终的应用程序中。

总结来说,implementation 用于指定项目在编译和运行时需要依赖的库,而 compileOnly files 用于指定项目在编译时需要引用、但在运行时由其他方式提供的库。

apply plugin: 'com.android.application' android { compileSdkVersion 31 signingConfigs { debug { storeFile file('..\\signkeystore\\platform_debug.keystore') storePassword 'android' keyAlias = 'androiddebugkey' keyPassword 'android' } } defaultConfig { applicationId "com.sgrl.pjj.factorymode" minSdkVersion 21 targetSdkVersion 33 versionCode getFactoryVersion("code") versionName getFactoryVersion("name") testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } gradle.projectsEvaluated{ tasks.withType(JavaCompile) { Set<File> fileSet = options.bootstrapClasspath.getFiles() List<File> newFileList = new ArrayList<>(); newFileList.add(new File("libs/framework-minus-apex.jar")) newFileList.add(new File("libs/framework-wifi.jar")) newFileList.addAll(fileSet) options.bootstrapClasspath = files(newFileList.toArray()) } } sourceSets{ main { jni.srcDirs = [] } } lintOptions { checkReleaseBuilds false abortOnError false } } dependencies { compileOnly files('libs/framework-minus-apex.jar') compileOnly files('libs/framework-wifi.jar') implementation files('libs/zxing.jar') implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:recyclerview-v7:24.2.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } static def getFactoryVersion(type){ int major = 5 int iteration = 0 Process process = "git rev-list --count HEAD".execute() process.waitFor() int count = process.getText().toInteger() if ("code" == type){ major * 1000000 + count }else if ("name" == type){ String today = new Date().format("yyMMdd") process = "git describe --always".execute() process.waitFor() String sha1 = process.getText().trim() "$major.$iteration.$count.$today.$sha1" }else if("apk_ver" == type){ "$major.$iteration.$count" } } android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "FactoryMode_V" + getFactoryVersion("apk_ver") + ".apk" } } 对照上文,我找到了build.gradle ,这里面提供的版本会是多少
最新发布
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值