使用gradle构建Cordova项目时重写Java版本
我正在尝试使用gradle作为构建工具来构建Cordova项目。在Cordova项目中,我有自己的插件,需要Java1.7 在Cordova附带的build.gradle中,java版本是1.6。 build.gradle:使用gradle构建Cordova项目时重写Java版本,java,android,cordova,gradle,Java,Android,Cordova,Gradle,我正在尝试使用gradle作为构建工具来构建Cordova项目。在Cordova项目中,我有自己的插件,需要Java1.7 在Cordova附带的build.gradle中,java版本是1.6。 build.gradle: android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 targetCompatibility JavaVersion.VERSION_1_6
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
}
build.gradle附带了一个很大的警告,说它是一个生成的文件,不应该编辑,定制gradle构建步骤的方法是——据我所知——创建一个build-extras.gradle文件
我创建了一个build-extras.gradle文件,并尝试了以下操作:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
但它似乎不起作用。我在构建项目时仍然会出错
错误:
> strings in switch are not supported in -source 1.6
> switch (action) {
> ^ (use -source 7 or higher to enable strings in switch)
有人能帮我想一想如何设置gradle来实现这一点吗?我一直在尝试解决同样的问题,来到这里希望找到答案!无论如何,虽然没有答案,但您提到的
构建额外功能.gradle
让我走上了正确的轨道,下面的内容现在对我很有用…谢谢
首先,我想我不妨尝试使用与您相同的语法,以便找出问题所在。据我所知,它失败了,因为build extras.gradle
文件没有神奇地合并到build.gradle
,而是使用gradleapply from
方法加载和执行。由于这是在android
关闭之前发生的,所以在这个过程中还为时过早,那些android
值会覆盖我们的“额外”值
(我没有足够的时间钻研Gradle或Groovy,如果我的术语不准确,我深表歉意……)
但是,如果我使用postBuildExtras()
方法,我可以让它工作
如果查看由Cordova生成的build.gradle
文件的底部,您将看到如果ext
上存在这样的方法(即postBuildExtras
),则会调用它。因为这是配置脚本中的最后一件事,所以我想这个方法的要点是我们可以使用它来覆盖任何内容
因此,我将此作为我的构建附加。gradle
:
ext.postBuildExtras = {
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
}
事实上,我在调查的早期就已经有了这种方法,但我一直在尝试其他方法,因为我怀疑当我们尝试使用多个build extra.gradle
文件时,这种技术会失败——考虑到我们都在专门讨论Cordova插件,这种情况很有可能发生
对于插件来说,有一种技术很有希望,那就是使用
plugin.xml
中的
元素,但是使用这种方法,我永远无法加载/导入插件特定的模块。当我谈到plugin#2时,我会再看一眼,但是现在,上面描述的技术让我比今天早上的情况有了更大的飞跃,所以再次感谢构建extras.gradle
线索 关于Mark的答案,我找到了一个解决方案,将build extras.gradle
添加到plugin.xml
文件中。因此,它将自动添加到平台文件夹的正确位置
<source-file src="src/android/lib/build-extras.gradle" target-dir="src/.." />
已找到并更新下一行
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
到
主要的一点是更改位于下一个文件夹\platforms\android\
中的build.gradle文件,但请记住还有其他具有其他路径的build.gradle文件
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}