Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9216651
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T02:27:49+00:00 2026-06-18T02:27:49+00:00

This seems very related to this issue (oh, and don’t get me wrong, gradle

  • 0

This seems very related to this issue (oh, and don’t get me wrong, gradle is the bomb…just seem to have some minor issues like these once in a while).

https://stackoverflow.com/questions/14594074/gradle-command-line-ordering-not-working-in-this-case-or-source-dirs-being-ignor

I have a gradle file and if I change the following $buildDir to output instead it works(and I use $buildDir ALL over the place in the file with no issues….

sourceSets { 
    main { 
       java {
           srcDir '$buildDir/generated-src'
       }
    }
}

My full gradle file is here and it is failing similar to the issue above in that the generated source code is NOT found :(. I am not sure if it is the same issue or not. Is this a bug?

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'

   //override gradle's default output directory(build) on every project as it conflicts with 
   //our build script called build causing failures.
   buildDir = 'output'
   project.ext.versionDir = '$buildDir/version'

   repositories {
      mavenCentral()
   }

   if (project.hasProperty('myVersion')) {
     project.ext.realVersion = project.myVersion
     project.version = project.myVersion
   } else {
     project.ext.realVersion = 'Developer-Build'
     project.version = 'Developer-Build'
   }

    test {
        beforeTest { desc -> 
            println "Executing test ${desc.name} [${desc.className}]"
        }
    }

    //generate a version file in all the projects
    task versionFile() << {
        File f = new File('$task.project.name/$versionDir');
        f.mkdirs()
        File v = new File(f, 'version'+project.ext.realVersion)
        println('output version file='+v.getAbsolutePath())
        v.createNewFile()
    }

    task zip(type: Zip) {
    }
    zip.dependsOn('versionFile')
    zip.dependsOn('jar')
    assemble.dependsOn('zip')

    task hello << { task -> println "I'm $task.project.name" }
    build << { task -> println "MASTER: I'm building now" } //"building with classpath=$sourceSets.main.compileClasspath.files"
}

project(':webserver') {
    //play does not follow maven/gradle standard of src/main/java and src/test/java :( :(
    //so we override the directories here...(we should put test in the sourceSets.test.java.srcDirs instead)
    sourceSets.main{
        java.srcDirs = ['app', 'test']
        resources.srcDirs = ['app']
    }

    dependencies {
        compile fileTree(dir: 'lib', include: '*.jar')
        compile fileTree(dir: 'play-1.2.4/framework/lib', include: '*.jar')
        compile fileTree(dir: 'play-1.2.4/framework', include: 'play-*.jar')
    }

    task zip(type: Zip, overwrite: true) << {
        archiveName 'dashboard-'+project.version+'.zip'
        from($versionDir) {
            into('webserver')
        }
        from('..') {
            exclude '**/*.pyc'
            exclude '**/*.class'
            exclude '**/samples-and-tests/**'
            exclude '**/play-1.2.4/documentation/**'
            exclude 'webserver/conf/logback.xml'
            include 'webserver/run*.sh'
            include 'webserver/lib/**'
            include 'webserver/app/**'
            include 'webserver/conf/**'
            include 'webserver/play-1.2.4/**'
            include 'webserver/public/**'
        }
        rename 'prod.(.*)', '$1'
    }

    //playframework has it's own generation of .classpath and .project fils so do not 
    //overwrite their versions.  NEED to call "play.bat eclipsify" here...
    task eclipse(overwrite: true) << {
        if (System.properties['os.name'].toLowerCase().contains('windows')) {
            println "*** WINDOWS "
            def result = exec {
                commandLine 'cmd', '/c', 'play-1.2.4\\play.bat eclipsify' 
            }
        } else {
            println "*** NOT WINDOWS "
            def result = exec {
                commandLine './play-1.2.4/play eclipsify'
            }
        }
    }
}

project(':toneserver') {
    project.ext.genLibDir = file('$buildDir/thirdpartylibs')

    configurations {
        all*.exclude module: 'log4j'
    }

    dependencies {
        compile 'com.google.inject:guice:3.0'
        compile 'com.google.protobuf:protobuf-java:2.4.1'

        //weird, why is their maven not working(we drop it in the directory instead)...
        //compile 'org.asteriskjava:asterisk-java:1.0.0.M3'   

        //to be erased as soon as we get the chance...(we should try this NOW and see if it is needed anymore)
        compile 'commons-configuration:commons-configuration:1.8'
        compile 'org.bouncycastle:bcpg-jdk16:1.46'

        compile project(':webserver')

        //gradle is not sucking in transitive dependencies when they exist in another project so we suck them
        //in ourselves here...
        compile fileTree(dir: '../webserver/play-1.2.4/framework/lib', include: '*.jar')
        compile fileTree(dir: '../webserver/lib', include: '*.jar')
        compile fileTree(dir: '../webserver/play-1.2.4/framework', include: 'play-*.jar')

        compile 'org.bouncycastle:bcpg-jdk16:1.46'

        testCompile 'junit:junit:4.11'
    }

    task generateSources {
        project.ext.outputDir = file("$buildDir/generated-src")
        outputDir.exists() || outputDir.mkdirs()
        if (System.properties['os.name'].toLowerCase().contains('windows')) {
            println "*** WINDOWS "
            def result = exec {
                commandLine 'cmd', '/c', '..\\tools\\protoc\\protoc.exe', '--java_out=output\\generated-src', 'src\\schemas\\agentbridge.proto'
            }
        } else {
            throw new RuntimeException("DARN, protoc only works on windows :( :( right now")
        }
    }
    compileJava.dependsOn("generateSources")
    sourceSets {
        main {
            java {
                srcDir '$buildDir/generated-src'
            }
        }
    }

    tasks.eclipse.dependsOn("generateSources")

    task copyJars(type: Copy) {
        from(configurations.compile) {}
        into genLibDir
    }

    task initconfig(type:Copy) {
       from('src/staging/toneserver') {
          include '**/*'
       }

       into '$buildDir/staging'
    }

    task zip(type: Zip, overwrite: true) << {
        archiveName 'toneserver-'+project.version+'.zip'
        from('src/staging') {
            include 'toneserver/**'
        }
        from('output/thirdpartylibs') {
            into('toneserver/lib')
        }
        from('$versionDir') {
            into('toneserver')
        }
    }

    zip.dependsOn('copyJars')
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T02:27:50+00:00Added an answer on June 18, 2026 at 2:27 am

    you want to lazily evaluate the property

    sourceSets { 
        main { 
            java {
                srcDir { "$buildDir/generated-src" }
            }
        }
    }
    

    the argument is resolved as per by Project#file which describes how it can resolve the result of a closure into a value. This means the evaluation is delayed until after buildDir has the right value.

    You are also using single quotes rather than a GString (double quotes) so I would have though this is taking your input as a string literal at the moment so is looking for a src dir named $buildDir/generated-src

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have an issue that seems like very flaky behavour, is this a problem
This seems to be very generic issue related with many different text editors (or
This seems very foolish mistake, I just did a git stash pop on a
This seems like it should be very simple but I can't get it to
This may seem a very silly question. Consider this: I have a simple Boolean
I have a problem that seems very related to that in another post, but
This seems very basic and I must be missing something, but here goes anyways...
I want to send a Javascript array to PHP using AJAX. This seems very
This problem seems very simple to me, but I've been unable to fix it,
This seems like it should be very easy...anyway, it is in MS SQL Server

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.