Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向.aar/pom文件添加其他属性_Android_Maven_Gradle_Android Gradle Plugin - Fatal编程技术网

Android 向.aar/pom文件添加其他属性

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

我有以下情况:

我在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具有如下依赖关系:

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,这也是我想要避免的。