2012-08-23 3 views
1

나는 이것에 약간의 도움을 정말로 사용할 수 있었다!요람 - 사전 정의 된 작업에 최신 매개 변수를 설정하는 방법?

Gradle을 문서는이 작업을 수행, 즉 함수에 대한 최신의 논리를 만들기 위해 말 :

task transform { 
    ext.srcFile = file('mountains.xml') 
    ext.destDir = new File(buildDir, 'generated') 
    inputs.file srcFile 
    outputs.dir destDir 

이 잘 좋은 당신이 정의하는 작업이다. 그러나, .classpath 파일을 수정하려면 Eclipse 플러그인을 사용하고 있습니다. 최신 버전이 작동하지 않습니다. 즉, (적어도 나를 위해) 상자 밖으로 반복해서 작업을 실행합니다. 여기에 내가 무엇을 가지고 :

eclipse { 
    classpath { 
     //eclipseClasspath.inputs.file // something like this??? but what to set it to? 
     //eclipseClasspath.outputs.file // here too 
     file { 
      withXml { 

       def node = it.asNode() 
       // rest of my stuff here 

가 나는 두 개의 주석 라인을 가지고 몇 가지를 시도했다. 그것들이 작동하지 않았기 때문에 나는 실마리가 없으며 도움을 얻을 수 있다는 것을 깨달았습니다! 미리 감사드립니다!

답변

0

제 경험상 Eclipse 작업은 매번 재실행하지 않아야합니다. 따라서 입력 또는 출력이 변경되도록하는 작업을한다고 생각합니다. Gradle이 Eclipse 프로젝트를 생성하거나 종속성을 변경 한 후에 Eclipse 프로젝트를 수정하는 경우 당연히 upToDate 검사가 실행됩니다.

매번 실행을 강제로해야하는 경우이 작업을 수행 할 수 있습니다. 다른 출력이 이미 정의되어있을 때 이것을 사용하려고 시도했는지 확실하지 않습니다.

eclipse { //this is the eclipse model 
    classpath { 

    } 
} 

eclipseClasspath { 
    //this is a task 
} 

eclipseProject { 
    //this is a task 
} 
+0

내가이 것을 다시 위의 반복을 실행했다 :

eclipseClasspath { outputs.upToDateWhen { true } //there isn't an equivalent for inputs } 

한 가지 중요한 점은 당신이 사용하고 있던 사용자의 프로젝트가 아닌 실제 작업 자체를 설명하는 이클립스 모델이 있다는 것이다 오해의 소지가 있었을 수 있습니다. 내가 의미하는 바는, "eclipseClasspath"태스크를 명령 행에서 직접 반복적으로 실행하면 : gradle eclipseClasspath를 통해 "Up-To-Date"를 얻지 못한다는 것입니다. 대신 작업을 다시 실행합니다. 내가하려는 것은 'src/main/generated'가 classpathentry로 추가되도록하는 것이지만, 사용자가해야 할 일이나 알아야 할 것이 아니라 자동으로 원한다. – JoeG

관련 문제