java - 在 gradle 的 jar 命令中使用 include 和 exclude 并不包括所有需要的类
问题描述
我需要从项目中的 Java 类子集创建一个 jar。我有 3 个任务:(复制、编译、罐子)复制和编译任务工作正常。以下供参考: 1. 将文件复制到编译jar 所需的目录。此目录中需要的其他文件在编译中需要但未包含在 jar 文件中。
task copyCoreSharedFiles(type: Copy) {
includeEmptyDirs = false
from ('src/java/com/')
(List of includes and excludes)
into rootProject.rootDir.getAbsolutePath() + "/target" +"/coreshared"
println 'Copied core-shared files into directory'
}
2. Compile the java files and stored to another directory
task compileCoreShareJar(type: JavaCompile) {
source = file('target/coreshared')
destinationDir = file('target/buildtmp/core')
classpath = configurations.compile
println 'Compiled core-shared files into directory'
}
我无法震动所有的类文件。下面的任务。
task jarCoreShareClassFiles(type: Jar) {
includeEmptyDirs = false
archiveName = "core-shared-SNAPSHOT.jar"
destinationDir = file("$rootDir/target/lib/")
from file('target/buildtmp/core')
include('**/com/common/*')
include('**/com/javaserver/*')
exclude('**/com/javaserver/dock/transaction/PrintTransaction.class')
println 'Jar core-shared files into directory'
}
我需要包含和排除特定的目录和文件。当我使用include('**/com/common/*')
它时,它包括公共目录文件,但不包括公共目录下的本地子目录。它根本不包括javaserver目录。
如何在 jar 命令中使用include
和?exclude
解决方案
该*
模式与子目录不匹配。要递归到子目录,您可以使用**
.
推荐阅读
- python - 如何使用 Python 将 tar 文件保存在平面 tar.gz 中
- r - 运行循环时出错
- ios - JTAppleCalendar 代表不为 Swift 工作
- php - 未定义变量:刀片 laravel 5.6 中的类别
- android - Android AlarmManager 只重复一次
- python - AttributeError:“工人”对象没有属性“idf”
- google-app-engine - 通过 GAE 标准上的 Websockets 订阅 GraphQL 没有响应
- python - 如何在 wxPython 中强制关闭小部件
- php - Laravel 检查作业是否扩展了某个类
- webpack - 静态网页 webpack hotloader 不工作