- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 Eclipse/ANT 迁移到 Android Studio/Gradle。我们当前的 ant-build 支持 N 个客户(build-targets),一个客户由三元组皮肤/玩家/客户定义。每个皮肤/玩家/客户都可能包含src、资源、 Assets 、...
在 Gradle 中建模的最佳方式是什么?
我目前为每个客户创建一个 productFlavor,如下所示
productFlavors {
cust1{
applicationId='com.xyz.cust1'
customer="cust1"
skin="skinX"
player="playerA"
}
cust2{
applicationId='com.xyz.cust2'
customer="cust2"
skin="skinY"
player="playerB"
}
}
但是我在以紧凑的方式定义相应的 sourceSet 时遇到了问题。
我可以这样写
sourceSets.cust1 {
java.srcDir('pool/playerA/src')
res.srcDir('pool/skinX/res')
res.srcDir('pool/playerA/res')
res.srcDir('pool/cust1/res')
assets.srcDir('pool/playerA/assets')
assets.srcDir('pool/skinX/assets')
jniLibs.srcDir('pool/playerA/libs')
}
对于每个客户,但这会导致 N 个几乎相同的源集
我更愿意有一个单一的、参数化的、像
这样的 sourceSetssourceSets {
java.srcDir('pool/${player}/src')
res.srcDir('pool/${skin}/res')
res.srcDir('pool/${player}/res')
res.srcDir('pool/${customer}/res')
assets.srcDir('pool/${player}/assets')
assets.srcDir('pool/${skin}/assets')
jniLibs.srcDir('pool/${player}/libs')
}
这可能吗?
一种替代方法是为每个玩家、皮肤和客户创建一个 sourceSet,并通过将主 sourceSet 与玩家、皮肤和客户的 sourceSet 组合来为 productFlavor 创建一个 sourceSet
输入赞赏!
最佳答案
我会调查 flavor dimensions (以前称为 flavor 组,也称为多味变体)。
使用这些,您可以为皮肤、玩家和客户设置三个 flavor 维度。每个皮肤在 skin
维度中获得一个 productFlavor
,每个玩家在 player
维度中获得一个 productFlavor
,并且每个customer 在 customer
维度中获取 productFlavor
。
然后您将执行诸如 assembleSkinxPlayeraCust1Debug
之类的任务,该任务将从 skinx
、playera
、cust1
构建应用程序, 和 debug
源集。
关于android - 如何合并多个 sourceSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620746/
这个问题类似于Make one source set dependent on another 除了主要的 SourceSet,我还有一个 testenv SourceSet。 testenv Sou
我是 gradle & groovy 的新手,我不知道这样一个声明的确切含义: sourceSets.all*.java 它是一个有效的 groovy 表达式吗? 最佳答案 它是一个 Groovy G
如何将单个源集添加到多个子项目? 首先 ...是的,我知道这有多荒谬。这只是我必须做的事情。 设置 该项目使用 Groovy DSL。 有 3 个子项目(A、B、C),每个子项目都有自己独特的主源集。
当您遇到这样的障碍时: sourceSets { main { java { srcDir 'spec/src' srcDir 'shared/src'
我的gradle多项目布局是这样的: rootProject |-- project1 | |-- project2 | |-- src | |-- main |
我正在尝试从 Eclipse/ANT 迁移到 Android Studio/Gradle。我们当前的 ant-build 支持 N 个客户(build-targets),一个客户由三元组皮肤/玩家/客
我正在创建一个具有管理模式和用户模式的应用程序,每个模式都有自己的布局、字符串和可绘制资源文件。我想知道如何根据用户可以在运行时切换的应用程序模式更改资源 SourceSet。 目前,我使用 2 种产
我正在使用Gradle的TestKit,并希望确保插件将正确的路径添加到sourceSets.main.proto。 如何访问该信息? 最佳答案 我还没有找到从TestKit访问Project对象的方
我已经开始在Gradle构建中使用Kotlin DSL。在用Groovy DSL编写以下代码之前: sourceSets.main.resources.srcDirs("src/main/resour
最近,我正在一个使用许多gradle groovy插件的项目中工作,我引入了一个块,在sourceSets中添加了一些静态文件。现在如何编写对sourceSets块的测试? 我在sourceSets中
我想知道是否有返回 SourceSet 完整路径字符串或文件目录的属性,例如 ${project.projectDir}/src/${sourceSet.name}。 apply plugin: 'j
我有一个 build.gradle.kts对于一个小型的纯 kotlin 项目(我知道我使用的是稍微非标准的源路径): plugins { kotlin("jvm") version "1.3
假设我有以下 sourceSets: sourceSets { flavor1 { assets.srcDirs = ['repo-assets/flavor1']
我有 2 种风格的应用程序,每种都有自己的 google maps (v1) key 用于调试和发布(意味着总共有 4 个 key )。所以我想知道我是否可以根据 buildType 和 produc
sourceSets { main { java.srcDirs = ['src/main/kotlin', 'src/main/java'] res.srcDirs =
在 Gradle 6.1.1 上,如何为 android 项目添加 sourceSets? 其他问题的答案不再有效,getByName("name") 返回错误,SourceSet with name
我试图让我的一个项目 (ProjectA) 生成一个包含所有测试类的 jar 文件,以便它可以在 ProjectB 中使用。 我做了一些研究,发现这是一个可能的解决方案:Create test jar
我是 Gradle 的新手,我的任务是将大项目从 Maven 转移到 Gradle。还有一个问题,我需要在 wicket 模块中设置 sourceSet,因为 HTML 文件位于 java 文件旁边。
像上面一样,我的build.gradle文件无法同步,因为它在源集“main”上找不到属性“jni”。我正在使用gradle-experimental:0.7.0。 我不想在编译中使用Android.
我想创建gradle插件,它将添加类型为 JavaExec 的其他任务 我有插件: class CustomPlugin implements Plugin { @Override void
我是一名优秀的程序员,十分优秀!