Eri*_* Wu 15 java intellij-idea gradle
我正在使用gradle/intellij-idea开发一个多模块项目,这是我项目主页的结构:
project/
sub-project-1
/main/resources
sub-project-2
/main/resources
data
/main/resources
/test/resources
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我有多个子项目(所有java),如何让它们依赖于一些公共资源("数据"项目,它不包含代码而只包含资源),以及它们自己独立的资源?
此外,intellij-idea最好能自动获取JetGradle的这些依赖关系(JetGradle可以很好地获取每个子项目中的默认gradle java项目依赖项).
非常感谢!
Pet*_*ser 10
一种解决方案是将Java插件也应用于data项目,然后使用常规项目依赖项(例如dependencies { runtime project(":data") }).但是,这需要一些努力来防止运送测试资源.
另一种解决方案不是制作dataGradle项目,而是将其资源目录包含在其他两个项目中(sourceSets.main.resources.srcDir "../data/main/resources"; sourceSets.test.resources.srcDir "../data/test/resources").
小智 9
我采用的方法是使用项目参考
sourceSets {
main {
resources {
srcDirs += [
project(':data').sourceSets.main.resources
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
您需要选择将容纳您的资源的项目。所有其他需要这些资源的项目都会将它们添加到resourcessourceSets的组件中。
sourceSets {
data {
resources {
srcDir "${project(':data').projectDir}/src/main/resources"
include "your_pattern_here**"
}
}
main {
resources {
srcDirs += [ data.resources ]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9929 次 |
| 最近记录: |