2016-08-09 20 views
1

私はzipファイルを解凍してローカルディレクトリにコピーする単純なgradleタスクを持っています。問題は、実行後、すべてのファイルの権限が変更されたことです。gradle unzipの後でファイルのパーミッションを維持

これは私のGradleのタスクです:

task unzip(type: Copy) { 
    def zipFile = file('src/dists/dist.zip') 
    def outputDir = file("${buildDir}/unpacked/dist") 

    from zipTree(zipFile) 
    into outputDir 
} 

しかし、 "解凍" タスクを実行した後、もともと

rwxr-xr-xとなって

権限を持っていたすべての私のファイル、

rw -r - r--

なぜ私のタスクを削除すると、すべてのファイルからパーミッションが実行されますか?私のgradleタスクにファイルパーミッションを保持するよう指示する方法はありますか?

答えて

2

まず、ファイルのアクセス許可をzipファイルis not trivialに保存することに注意してください。 zipファイルにアクセス許可を保存しているかどうかは疑問ではありません。

私は権限を維持へのGradleを伝える方法がわからない、しかし、これは許容できるかもしれません(?):Copyタスク(doc here)のfileModeパラメータは割り当て権限に使用することができます。例えば

bash$ ls -lrt build/unpacked/dist/ 
total 0 
-rwxr-xr-x [snip] 9 Aug 22:42 run.sh 
-rwxr-xr-x [snip] 9 Aug 22:42 example1.sh 
-rwxr-xr-x [snip] 9 Aug 22:42 foobar.txt 
+0

がはるかに掘削した後、私はzipファイルが最も可能性が高い私は期待していた権限を持っていなかったことを発見しました次のような権限で

task unzip(type: Copy) { fileMode = 0755 def zipFile = file('src/dists/dist.zip') def outputDir = file("${buildDir}/unpacked/dist") from zipTree(zipFile) into outputDir } 

結果。ほとんどの場合、それはWindows OSから圧縮されているためです。このソリューションは、ありがとう! – baekacaek

関連する問題