Android 向.aar/pom文件添加其他属性
我有以下情况: 我在gradle有一个android库项目,包含2个子模块: MyLibProject -子模块1 -子模块2 在MyLibProjects build.gradle文件中,我定义了如下变量:Android 向.aar/pom文件添加其他属性,android,maven,gradle,android-gradle-plugin,Android,Maven,Gradle,Android Gradle Plugin,我有以下情况: 我在gradle有一个android库项目,包含2个子模块: MyLibProject -子模块1 -子模块2 在MyLibProjects build.gradle文件中,我定义了如下变量: ext { daggerVersion = "1.2.2" } dependencies { compile 'com.squareup.dagger:dagger:'+rootProject.ext.daggerVersion } 子模块1和子模块2具有如下依赖关系: ex
ext {
daggerVersion = "1.2.2"
}
dependencies {
compile 'com.squareup.dagger:dagger:'+rootProject.ext.daggerVersion
}
子模块1和子模块2具有如下依赖关系:
ext {
daggerVersion = "1.2.2"
}
dependencies {
compile 'com.squareup.dagger:dagger:'+rootProject.ext.daggerVersion
}
到目前为止还不错。我可以用它们构建.aar库,并将它们部署到我的maven存储库中,一切都很好
现在我想将MyLibProject包含在android应用程序项目中。因此,我包括我的图书馆项目,其中已经包括匕首。然而,dagger的注释处理编译器需要通过使用hugo vissers android apt gradle插件包含在应用程序项目中
dependecies {
compile 'com.company:mylibproject:1.0.0'
apt 'com.squareup.dagger:dagger-compiler:1.2.2'
}
到目前为止一切都很好。
我只想解决一个“问题”。我要说的问题是,在我的应用程序中,我必须知道dagger编译器的版本。有没有办法将额外的信息(如MyLibProject的ext)放入maven/aar文件中,以便我可以在applications build.gradle文件中以某种方式访问它们
是否可以使用类似以下内容(applications build.gradle文件):
dependecies {
compile 'com.company:mylibproject:1.0.0'
apt 'com.squareup.dagger:dagger-compiler:'+MyLibraryProject.ext.daggerVersion
}
我的意思是,有没有可能从库项目文件中获取dagger的版本,或者有没有gradle插件来获取dagger的版本?我假设一些插件需要将dagger编译器依赖项包含在
apt
配置中?既然您知道compile
配置将包含所需依赖项的正确版本,那么您是否可以让apt
配置从compile
扩展?应该使用daggervision
而不是rootProject.ext.daggervision
.ext
仅应在定义额外变量时使用。为了澄清,您的应用程序项目似乎将库作为外部模块依赖项引入,对吗?如果是这样,您将无法访问库项目的属性。除非它们都是单个多项目构建的一部分,否则不会发生。@MarkVieira正确!这就是问题所在,它们是两个完全分离的项目,因此Peter Niederwieser你的建议不起作用。库项目包含为.aar和pom.xml。我认为可能有一种方法可以在库pom.xml文件中添加额外的属性,这些属性可以以某种方式读取。@MarkVieira您的建议似乎是最有希望的。但是有两个问题:注释处理不是从库pom.xml中为dagger compile提供的作用域开始的,如果我只是使用compile(而不是提供),那么它将在我的应用程序中包括dagger编译器的依赖项,如guava,这也是我想要避免的。