我有以下项目:
-> root
->->common
->->server
->->client
我希望服务器和客户端项目都能访问同一资源文件夹中的文件。
我的root的build.gradle如下所示:
apply plugin: 'java'
allprojects {
apply plugin: 'java'
apply plugin: 'idea'
}
subprojects {
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.8.1'
}
}
多项目系统有效,我对它没有任何问题。我找到了用于实现资源文件夹的资源,但它们仅用于每个项目级别。
我很感激任何见解和帮助。 :)
答案 0 :(得分:2)
如果您希望在项目之间共享资源,则应为这些资源创建库,并让每个项目都依赖于该库。看一下库模块上的Android documentation。
另外,请查看here以获取有关如何将项目依赖项添加到Gradle构建脚本的示例。
答案 1 :(得分:0)
如果您不想拥有其他工件,那么另一个选项是在构建之前将客户端/服务器代码与公共代码合并(例如$ buildDir / src)并将srcDir指向此位置。 为了做到这一点:
添加一个类型为Copy的prepareSources任务,它将所有相关来源从client / server和common复制到备用src / main文件夹中(例如在$ project.buildDir / src下)
将服务器/客户端模块中的src / main文件夹重命名为其他内容。这是必需的,因为java插件会自动在srcDir中包含此文件夹,而我们希望从合并的源位置获取这些源。
使compileJava和processResources依赖于新的prepareSources任务:
compileJava.dependsOn prepareSources
processResources.dependsOn prepareSources
将新的src目录添加到srcDir