2011-08-17 5 views
1

buildr 기반 Java 프로젝트에서 코드 생성기를 사용하려고합니다. 나는 (즉,이 .classpath 그 소스가 포함되어있다) 생성 된 물건을보고 그들에게 buildr 프로젝트에서 생성 된 소스 사용

  • 일식 패키지, ...

    • 호출 발전기
    • 생성 된 클래스를 컴파일하고 싶습니다

      나는 완벽한 예를 찾기 위해 많은 시간을 보내고 있지만 아무 소용이 없다. 여기의 예는 https://cwiki.apache.org/confluence/display/BUILDR/How+to+generate+sources+before+compilation

      입니다. 이것은 내가 무엇을 시도했다입니다 :

      RuntimeError: Circular dependency detected: TOP ... 
      

      그래서 난 분명히 아주 아주 뭔가를 잘못하고 있어요 :

      define 'generator' do 
          compile.with ALL_COMMON_MODULES 
          end 
          define 'extras' do 
          p 'calling generator..' 
          Java.classpath << ALL_COMMON_MODULES 
          Java.classpath << projects('generator') 
          Java.org.foo.generator.Main.main(['../modules/daos', 'target/generated-sources']) 
          sources = FileList[_("src/main/jeannie/*.*")] 
          generate = file(_("target/generated-sources") => sources).to_s do |dir| 
           puts 'generating...' 
           mkdir_p dir.to_s # ensure directory is created 
          end 
          compile.from generate 
          end 
      

      나에게이 같은 오류를 제공합니다. 코드 생성을 사용하는 작업 예제 나 프로젝트를 보니 매우 기쁩니다.

  • 답변

    1

    마침내는 buildr 메일 링리스트의 도움으로 일하고 있어요. 관심있는 사람 : here에 언급 된 예제에 문제가 있습니다. 이 :

    compile.from generate 
    

    해야한다 :

    compile.from generate.to_s 
    

    는 이제 아름답게 작동합니다! buildr은 또한 'compile.from'이 다른 위치를 가리키면 eclipse에 대한 .classpath를 자동으로 확장합니다.

    0

    'extras'프로젝트에서 상위 프로젝트를 호출하여 순환 종속성을 발생시킵니다. 그 줄에 : Java.classpath < < projects ('generator')

    예를 들어, 모든 것이 같은 수준에 있어야합니다. 이 시나리오에서는 '생성'참조가 '추가'범위에 있으므로 참조를 사용할 수 없습니다. 이 (안된) 같은

    뭔가 :

    define "generator" do 
        generate = file(_("target/generated-sources") => sources).to_s do |dir| 
         p 'calling generator..' 
         Java.classpath << ALL_COMMON_MODULES 
         Java.classpath << projects('generator') 
         Java.org.foo.generator.Main.main(['../modules/daos', 'target/generated-sources']) 
         sources = FileList[_("src/main/jeannie/*.*")] 
         puts 'generating...' 
         mkdir_p dir.to_s # ensure directory is created 
        end 
        compile.with ALL 
        compile.from generate 
        end 
    
    +0

    감사합니다. 불행히도 그것은 작동하지 않았다. javaw : 잘못된 플래그 :/home/me/projects/gen/generator/target/generated/sources' – alvi

    +0

    BTW :이'Java.classpath <<와 같이 sth를 사용하면 원형 의존성 오류가 발생할 수 있습니다. 'target/classes '',하지만 아직 아무 것도 작동하지 않는 것 같아요. 너무 초조해. – alvi

    +0

    저는 devboy가 옳다고 생각합니다. 주 메쏘드를 실행하는 동안 나타나는 오류는 다음에 나오는 문제입니다. 몇 가지 System.err을 main 메소드에 배치하여 실행 여부를 확인 했습니까? –

    관련 문제