jrgonzalez
01/12/2019, 10:37 PMdep = dependencies.create('com.squareup.retrofit2:converter-simplexml:' + constants.versions.retrofit) {
// We need to exclude dependencies which are already provided by the Android platform
exclude module: 'stax-api'
exclude module: 'stax'
exclude module: 'xpp3'
}
But I can't figure out how to convert that to Kotlin DSL and I don't even have access to the "dependencies.create" method on the buildSrc object where I am declaring the dependencies. Is it possible to define a dependency with exclusions like that outside a DependencyHandler scope? Is there a standalone constructor / builder for dependencies that is not an extension method only available at specific places?gildor
01/12/2019, 10:52 PMjrgonzalez
01/12/2019, 10:56 PMDependencies.retrofit2ConverterSimpleXML
as the ones that I have with no configuration. Also, don't know how to do the configuration like in Groovy.gildor
01/12/2019, 10:57 PMjrgonzalez
01/12/2019, 10:58 PMfun DependencyHandler.retrofit2ConverterSimpleXML()
inside the Dependencies objectgildor
01/12/2019, 10:59 PMjrgonzalez
01/12/2019, 11:02 PMimplementation(Dependencies.)
I don't get the function appearing at allimplementation(Dependencies.retrofit2ConverterSimpleXML())
or offers anything to import as implementation(retrofit2ConverterSimpleXML())
gildor
01/12/2019, 11:06 PMjrgonzalez
01/12/2019, 11:08 PMimplementation(retrofit2ConverterSimpleXML())
to offer to import it as import Dependencies.retrofit2ConverterSimpleXML
but that is not ideal either cause I lose autocompletion, so I have to look them up on the object manually and also to add imports, which the other dependencies do not needgildor
01/12/2019, 11:10 PMjrgonzalez
01/12/2019, 11:12 PMgildor
01/12/2019, 11:12 PMobject Dependencies {
fun retrofitSimpleXml(dep: DependencyHandler)
}
Than I don't see any problemjrgonzalez
01/12/2019, 11:13 PMclosureOf<ExternalModuleDependency> { }
? 😅Dependencies.retrofitSimpleXml(this)
?gildor
01/12/2019, 11:14 PMAlso the config does not work easily, it expects a Closure<Any>Just create dependency, cast it to ExternalDependency and use apply to configure
jrgonzalez
01/12/2019, 11:19 PMfun retrofit2ConverterSimpleXML(dependencyHandler: DependencyHandler): Dependency =
dependencyHandler.create(
"com.squareup.retrofit2:converter:-simplexml${Versions.retrofit}", closureOf<ExternalModuleDependency> {
exclude(module = "stax-api")
exclude(module = "stax")
exclude(module = "xpp3")
})
implementation(Dependencies.retrofitConverterSimplexml(this))
gildor
01/12/2019, 11:21 PMjrgonzalez
01/12/2019, 11:23 PMfun retrofit2ConverterSimpleXML(dependencyHandler: DependencyHandler): Dependency =
(dependencyHandler.create(
"com.squareup.retrofit2:converter:-simplexml${Versions.retrofit}"
) as ExternalDependency).apply {
exclude(module = "stax-api")
exclude(module = "stax")
exclude(module = "xpp3")
}
gildor
01/12/2019, 11:23 PMjrgonzalez
01/12/2019, 11:23 PMgildor
01/12/2019, 11:23 PMjrgonzalez
01/12/2019, 11:24 PMfun DependencyHandler.`implementation`(dependencyNotation: Any): Dependency?
fun <T : ModuleDependency> DependencyHandler.`implementation`(
dependency: T,
dependencyConfiguration: T.() -> Unit
): T
gildor
01/12/2019, 11:25 PMadd("implementation", dependency)
jrgonzalez
01/12/2019, 11:27 PMgildor
01/12/2019, 11:28 PMjrgonzalez
01/12/2019, 11:29 PMgildor
01/12/2019, 11:30 PMjrgonzalez
01/12/2019, 11:30 PMfun <T : ModuleDependency> DependencyHandler.`implementation`(
dependency: T,
dependencyConfiguration: T.() -> Unit
): T
gildor
01/12/2019, 11:31 PMjrgonzalez
01/12/2019, 11:31 PMgildor
01/12/2019, 11:31 PMjrgonzalez
01/12/2019, 11:32 PMimplementation(Dependencies.retrofitConverterSimplexml(this), {})
implementation(Dependencies.retrofitConverterSimplexml(this), {})
^ None of the following functions can be called with the arguments supplied:
public fun <T : Dependency> DependencyHandler.implementation(dependency: TypeVariable(T), action: Action<TypeVariable(T)>): TypeVariable(T) defined in org.gradle.kotlin.dsl
public fun DependencyHandler.implementation(group: String, name: String, version: String? = ..., configuration: String? = ..., classifier: String? = ..., ext: String? = ..., dependencyConfiguration: Action<ExternalModuleDependency>? = ...): ExternalModuleDependency defined in org.gradle.kotlin.dsl
public fun DependencyHandler.implementation(dependencyNotation: String, dependencyConfiguration: Action<ExternalModuleDependency>): ExternalModuleDependency defined in org.gradle.kotlin.dsl
gildor
01/12/2019, 11:35 PMjrgonzalez
01/12/2019, 11:36 PMgildor
01/12/2019, 11:36 PMjrgonzalez
01/12/2019, 11:36 PMgildor
01/12/2019, 11:37 PMjrgonzalez
01/12/2019, 11:37 PMgildor
01/12/2019, 11:37 PMadd()
, it probably also will workadd
Imo just destroying all the idea of type safe dependency definitionjrgonzalez
01/12/2019, 11:41 PMimplementation(Dependencies.retrofitConverterSimplexml) {
exclude(module = "stax-api")
exclude(module = "stax")
exclude(module = "xpp3")
}
gildor
01/12/2019, 11:53 PMjrgonzalez
01/12/2019, 11:56 PMwithGroovyBuilder { "implementation(${Dependencies.retrofit2ConverterSimpleXML(this@dependencies)})"
}
gildor
01/13/2019, 1:19 AMjrgonzalez
01/13/2019, 9:36 AMisTransitive = true
which I am not sure if it has a global way.gildor
01/13/2019, 9:59 AMjrgonzalez
01/13/2019, 10:30 AMisTransitive
either.gildor
01/13/2019, 10:38 AMjrgonzalez
01/13/2019, 11:06 AMimplementation("com.twitter.sdk.android:tweet-composer:3.3.0@aar") {
isTransitive = true
}
com.twitter.sdk.android.core
packagegildor
01/13/2019, 11:17 AM<@U27HSU2U9>
and isTransitivejrgonzalez
01/13/2019, 11:40 AM@aar
also should get rid of it. I thought it was something to distinguish aar vs jar or something like that.implementation(Dependencies.twitterSdkTweetComposer)
🎉gildor
01/14/2019, 5:49 AM