我有一个多模块项目。结构如下。
root-project
------------
├── project-A
│ └── src
│ └── main
│ └── resources
│ └── myFile.xml
├── project-B
│ └── src
│ └── main
│ └── resources
│ └── myFile.xml
└── project-shared
└── src
└── main
└── resources
└── myFile.xml
(':project-A')取决于(':project-shared')和(':project-B')
我的问题是我建立(':project-A')
我在myFile.xml中有一个filtertocken(替换版本号)。所以我需要在project-A下的myFile.xml在project-A.jar文件中。但不幸的是,project-A.jar包含来自project-shared的myFile.xml。我尝试从project-shared中删除myFile.xml,然后在构建项目A时,project-A jar包含来自project-B的myFile.xml。
每当我构建它时,我都需要在project-A.jar中使用myFile.xml文件。 有什么办法吗?
代码如下:
processResources() {
java.lang.String version = project.version
filter(ReplaceTokens, tokens: ['VERSION': version])
}
dependencies {
compile project(':project-shared')
compile project(':project-B')
...
...
}
//Tried different ideas..
tasks['compileJava'].dependsOn += [processResources]
tasks['installHost'].dependsOn += [processResources]
tasks['jar'].dependsOn += [processResources]
在构建项目A时是否有任何方法可以排除以下文件?
1. project-B / src / main / resources / myFile.xml
2. project-shared / src / main / resources / myFile.xml
或者只保留项目-A / src / main / resources / myFile.xml始终在project-A.jar中