我需要从项目中的Java类的子集创建一个jar。 我有3个任务:(复制,编译,Jar) 复制和编译任务可以正常工作。 它们在下面供参考: 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/*')
时,它包含 common 目录文件,但不包含 common 目录下的子目录 local 。
它根本不包含 javaserver 目录。
如何在jar命令中使用include
和exclude
?
答案 0 :(得分:0)
*
模式与子目录不匹配。要递归到子目录,可以使用**
。