2016-07-27 10 views
1

werden sollte, wenn ich dies in meinem Skript ausführenVariable ist schreibgeschützt, wenn es nicht

artifacts = ['abc123-com', 'abc123-ejb', 'abc123-spec', 'abc123-war', 'abc123-war2'] 

task clone_workspace() << { 
    for (item in artifacts) { 
     println item 
    } 
} 

i bekommen

> Cannot set the value of read-only property 'artifacts' on root project 'abc123'. 

ich Scoping versucht haben, mit project.artifacts zu projizieren und zu ext mit project.ext.artifacts.

was mache ich hier falsch?

Antwort

1

Die folgende minimalistische Gradle Datei zeigt, dass project bereits eine Eigenschaft für artifacts (dokumentiert here) hat:

println "TRACER : " + project.artifacts.class 

Ausgang:

bash$ gradle 
TRACER : class org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler_Decorated 

Im Gegensatz dazu ist diese Version des Originals ist glücklicher:

def myArtifacts = ['abc123-com', 'abc123-ejb', 'abc123-spec', 'abc123-war', 'abc123-war2'] 

task clone_workspace() << { 
    for (item in myArtifacts) { 
     println item 
    } 
}