2016-09-09 1 views
4

.jarファイルを作成してdirに移動しますが、このファイルのアクセス権を変更する方法がわかりません。gradleによるファイルの変更

task fatJar(type: Jar) { 
    manifest { 
     attributes 'Implementation-Title': 'Gradle Jar File Example', 
       'Implementation-Version': version, 
       'Main-Class':'com.asd.App', 
       'Class-Path': 'com.asd' 
    } 
    baseName = project.name + '-all' 
    from { 
     configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
    } 
    def file = file('/home/master/project/asd') 
    fileMode = 755 
    destinationDir = file 
    with jar 
} 
+0

最初に正しいモードでファイルを作成してみませんか? – Henry

答えて

4

Execファイル権限を変更するタスクを作成します。

task filepermission(type: Exec) { 
    commandLine 'chmod', '700', '<file_path>' 
} 

実行このdoLastブロックを使用してbuild.gradleファイルでこれを追加します。あなたの最終build.gradleは次のようになります。

task filepermission(type: Exec) { 
    commandLine 'chmod', '700', '<file_path>' 
} 

task fatJar(type: Jar) { 
    manifest { 
     attributes 'Implementation-Title': 'Gradle Jar File Example', 
       'Implementation-Version': version, 
       'Main-Class':'com.asd.App', 
       'Class-Path': 'com.asd' 
    } 
    baseName = project.name + '-all' 
    from { 
     configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
    } 
    def file = file('/home/master/project/asd') 
    fileMode = 755 
    destinationDir = file 
    with jar 
    doLast { 
     filepermission.execute() 
    } 
} 

は今gradle fatJarを実行すると、ファイルのパーミッションを変更する必要があります。 filePermissionタスクで適切なパスを設定していることを確認してください

+0

ありがとう、しかし私は自分の仕事の中でそれをどのように使うことができますか? – dzrkot

3

既存のカスタムタスクに埋め込みたい場合は、Project.exec(Action<? super ExecSpec> action)を使用してください。

task changePermission { 
    doLast { 
    project.exec { 
     commandLine('chmod', '+x', '<fileLocation>') 
    } 
    } 
} 

projectそれはAbstractTask.getProject()から来ているので、ほとんどのタスクの実装で使用可能です。

関連する問題