我想從我的項目文件夾中複製2個文件夾到jar中。 當我使用後的文件的文件夾內設置搖籃副本,而不是文件夾自理:Gradle複製資源,processResources
processResources {
from 'public'
from 'data'
}
我需要的是有文件夾「PROJECTDIR /數據」 copyied到「my.jar /數據」。
我想從我的項目文件夾中複製2個文件夾到jar中。 當我使用後的文件的文件夾內設置搖籃副本,而不是文件夾自理:Gradle複製資源,processResources
processResources {
from 'public'
from 'data'
}
我需要的是有文件夾「PROJECTDIR /數據」 copyied到「my.jar /數據」。
的copy
規範中的一個文件夾的副本搖籃內容如果在from
指定的路徑是文件夾。
一種解決方案是使用into
directive指定jar
中的目標文件夾。
processResources {
from 'data'
from 'publicFolder'
}
task data(type: Copy) {
from 'data' into 'data'
}
task publicFolder(type: Copy) {
from 'public' into 'public'
}
這會將內容或原始文件夾放入jar中同名的文件夾中。但正如你所看到的,你需要在into
閉包中重複文件夾名稱。
另一個解決辦法是對這些資源文件夾父文件夾,並在copy
規範使用此父文件夾。
這裏有一種方法,你可以構建資源文件夾:
<project-folder>
|
--> res
|
--> public
--> data
然後在copy
規範的processResources
,你可以做到以下幾點:
processResources {
from 'res'
}
這將在創建文件夾public
和data
你想要的最終的jar文件。
有一個'從'的方法,採用CopySpec封閉。
我會推薦使用這個,而不是分解成單獨的任務或重構您的佈局。
processResources {
from('data') {into 'data'}
from('publicFolder') {into 'publicFolder'}
}
是否可以說「從'projectRoot'文件夾中複製並且只採用'data'和'public'」文件夾? – 2015-01-15 17:14:15
以某種方式對文件夾名稱使用過濾器無法正常工作。然而,我已經編輯了一個不涉及重新安排文件夾的主要解決方案。希望有所幫助。我同意理想的方式是從'projectRoot'文件夾中說_copy,並且只包含我想要的文件夾。如果我得到一個解決方案,會發佈一個解決方案。 – 2015-01-15 17:38:38
謝謝你的「從入」解決方案。這是我一直在尋找的東西。問題是它不適合我。我得到錯誤「>找不到方法public()爲參數[build_akni020h40dn3k7vwmwbm63ee $ @ _run_closure2_closure3 4d266391]根工程」 – 2015-01-21 13:48:33