Just to clarify: it's intentional that the idea output dirs and the gradle classes dirs are not shared. Trying to share compiler output has proved problematic. Is that what you're trying to achieve? On 7 Mar 2014 02:55, "Radim Kubacki" <radim.kuba...@gradleware.com> wrote:
> No worry. I think I see where you are going. > > Gradle doesn't know and doesn't care what is the default output directory > for project or for module. It only adds this information to its Idea model > if it is told that the output location should be customized. That's all > what is needed to generate IDEA project and module files offline or to > build a model that will be used through toolingApi to synchronize Gradle > project with IntelliJ's project. > > > On Thu, Mar 6, 2014 at 11:27 PM, Alex Ruiz <alr...@google.com> wrote: > >> Thanks Radim and Szczepan. I apologize I didn't explain the problem well. >> What I'm saying is that I was expecting IdeaCompilerOutput to return, >> for example "build/classes/main" and "build/classes/tests" if I haven't >> configured the output directories of a project. >> >> >> On Thu, Mar 6, 2014 at 12:39 PM, Szczepan Faber < >> szczepan.fa...@gradleware.com> wrote: >> >>> Hey Alex, >>> >>> This could be a bug. Configuring the output dirs should be possible - >>> check out this integ test: >>> https://github.com/gradle/gradle/blob/master/subprojects/tooling-api/src/integTest/groovy/org/gradle/integtests/tooling/m5/ToolingApiIdeaModelCrossVersionSpec.groovy#L111 >>> >>> Cheers! >>> >>> >>> On Thu, Mar 6, 2014 at 8:55 PM, Radim Kubacki < >>> radim.kuba...@gradleware.com> wrote: >>> >>>> Hello Alex, >>>> >>>> I am not sure what you want to achieve / why you want to access these >>>> values. What I think is the expected behavior here is: >>>> >>>> - no inheritOutputDirs or true creates .iml saying that output dirs are >>>> inherited from project settings >>>> - inheritOutputDirs set to false and no output dirs will tell IDEA to >>>> use project specific output dirs and IDEA or user will set exact location >>>> - inheritOutputDirs set to false and output dirs tells IDEA that this >>>> module should use specific dirs for its outputs. >>>> >>>> IMO if you are looking for classes from some library inside your AS >>>> plugin you should be able to query IJ API. And if they should be separated >>>> from classes built by android project/library then set inheritOutputDirs to >>>> false and optionally specify folders. >>>> >>>> -Radim >>>> >>>> >>>> On Thu, Mar 6, 2014 at 7:44 PM, Alex Ruiz <alr...@google.com> wrote: >>>> >>>>> Greetings, >>>>> >>>>> In Android Studio we set up a Gradle-based Android project by first >>>>> getting the structure of the project from Gradle (IDEA's infrastructure >>>>> gets a org.gradle.tooling.model.idea.IdeaProject using the Gradle tooling >>>>> API.) >>>>> >>>>> We currently have a problem when setting up Java-only library modules >>>>> (non-Android.) The problem is that when we get an IdeaCompilerOutput from >>>>> an IdeaModule, the output paths are null. The only way I can get it return >>>>> a value is by adding this to a build.gradle file: >>>>> >>>>> apply plugin: 'idea' >>>>> >>>>> idea { >>>>> module { >>>>> inheritOutputDirs = false >>>>> outputDir = file('muchBetterOutputDir') >>>>> testOutputDir = file('muchBetterTestOutputDir') >>>>> } >>>>> } >>>>> >>>>> Even setting up the output path in the Gradle Java plug-in as follows: >>>>> >>>>> sourceSets.main.output.classesDir = file('muchBetterClassesDir') >>>>> >>>>> has no effect on IdeaCompilerOutput. >>>>> >>>>> Is this the expected behavior? I originally thought this was a bug, >>>>> but if this the expected behavior, and given that there is no Java model >>>>> (like the Android model the Android plug-in provides,) what would make >>>>> more >>>>> sense: >>>>> 1. Us writing our own Java model (IntelliJ already has something like >>>>> this and we could extend it,) >>>>> or >>>>> 2. Have this functionality provided by Gradle >>>>> ? >>>>> >>>>> Many thanks in advance, >>>>> -Alex >>>>> >>>>> >>>> >>> >>> >>> -- >>> Szczepan Faber >>> Principal engineer@gradle; Founder@mockito >>> >> >> >