所以我有一个看起来像这样的多项目设置
Root Project
--> common
--> project1
--> project2
--> 3rd_party_api
Run Code Online (Sandbox Code Playgroud)
如此常见显然包含一堆在其他项目之间共享的代码。项目 1 和 2 很好,因为它们是 wars 并且包含公共 jar 文件作为依赖项,没有任何问题。
我遇到的问题是我的 3rd_party_api 项目。这是一个相当小的 jar 文件,我们将其交付给其他团队,以便他们可以与我们的代码集成。大多数所需的 java 代码都包含在该项目文件夹中,但是公共项目中有 3 或 4 个类需要包含在该库中。因为它必须是独立的,所以我需要将这些类包装在 jar 文件中。
我尝试过 srcDirs 和 source 的各种迭代,但我一生都无法找到一种简单的方法来做到这一点。
正如我所说,我研究了不同的方法,但我最近的尝试看起来有点像这样:
project(':api') {
defaultTasks 'jar'
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src/main/java'
srcDir fileTree(dir: '../common/src/main/java').matching { include 'com/my/classes/**' }
}
}
dependencies {
compile project(':common')
}
}
Run Code Online (Sandbox Code Playgroud)
编译成功,但来自 common 的额外类不包含在 jar 中。
任何帮助将不胜感激。
也许是这样的:
jar {
baseName = 'yourJarFileName'
from('path/to/your/dir/') {
include 'local/path/from/there/**/*.jar'
}
}
Run Code Online (Sandbox Code Playgroud)
没有检查这个...所以如果它不能开箱即用,请不要责怪我;)
另一种可能性是定义您的自定义sourceSets...但也从未尝试过。
| 归档时间: |
|
| 查看次数: |
8247 次 |
| 最近记录: |