No update. I realize that I had forgotten to file a bug for it, so here it
is: https://code.google.com/p/android/issues/detail?id=64635


On Thu, Jan 9, 2014 at 5:54 AM, Roman Mazur <[email protected]> wrote:

> How is it going with dependencies information?
> Can we expect them in the nearest releases?
>
>
> On Thursday, 19 December 2013 23:51:54 UTC+2, Xavier Ducrohet wrote:
>>
>> Sorry for the lack of documentation in this area. Things are also very
>> much subject to changes based on feedback.
>>
>> First of all you need to understand that this API is only about updating
>> the model that the IDE sees. It has no impact on the generated APK.
>>
>> the idea is to do the following:
>> - register a new type of artifact
>> - for each variant, register a new artifact of this type, with source
>> sets, and associated task.
>> Then Studio (not 0.4 yet, but hopefully 0.4.1) will allow you to switch
>> between the existing artifacts (main, instrumentTest) and the new one.
>>
>> Let's look at the API.
>>
>> First to register the artifact:
>>
>> void registerArtifactType(@NonNull String name, boolean isTest, int
>> artifactType);
>>
>> The name is a unique name, and will show up in the UI. For your example
>> "robolectric" is fine.
>> if isTest is true then the source folders of the artifact will setup as
>> test source folder, extending the main artifact source folders. If false,
>> they'll replace the main artifact as "main" source folders.
>> the artifact type is Java or Android (only Java supported now), so use
>> com.android.builder.model.ArtifactMetaData.TYPE_JAVA
>>
>> Then you register source folders.Look at the sample.
>>
>> You can register folders specific to build types and flavors, but
>> strangely not a common one (usually src/test). This is stupid! more on this
>> later.
>>
>> Then you add an actual artifact. You need to associate it with a variant.
>> The source folder associated earlier are automatically associated with
>> variants that use those build types or flavors.
>> When registering an artifact you can also specify a variant-specific
>> source folder.
>>
>>     public void registerJavaArtifact(
>>             @NonNull String name,
>>             @NonNull BaseVariant variant,
>>             @NonNull String assembleTaskName,
>>             @NonNull String javaCompileTaskName,
>>             @NonNull File classesFolder,
>>             @Nullable SourceProvider sourceProvider);
>>
>>
>> When I designed this I looked at Jake Wharton's robolectric plugin (there
>> are too many different robolectric plugins out there! </rant>), and
>> realized that he's creating a single source folders with multiple path
>> (src/test/java, src/debugTest/java, etc...), so in this case you'd use this
>> source folder as the variant specific one.
>> Note that the build type/flavor specific folders can't really be used now
>> because Gradle doesn't like combining multiple source sets into a single
>> binary yet (they are working on fixing this which will allow us to start
>> using their default source sets instead of custom ones).
>>
>> Your comment about the SourceProvider is expected. We need this to be
>> generic Java/Android so it contains everything. If you use a default Gradle
>> sourceSet you can use android.wrapJavaSourceSet(theSourceSet) to get a
>> SourceProvider from a java source set.
>>
>> Stupidly (again), the dependency information is missing. I'll add this
>> shortly. Note that again you can't really use this before Studio is updated
>> to use this new model. I wanted to get this out of the door to get
>> feedback. I intend to rev quickly to address issues.
>>
>> hope this helps.
>> Xav
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "adt-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.
http://developer.android.com | http://tools.android.com

Please do not send me questions directly. Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to