重复的课程R& “重新导入所有Maven项目”之后的BuildConfig

时间:2013-07-18 14:47:18

标签: android maven intellij-idea

我们正在使用Maven和IntelliJ IDEA构建我们的Android项目。有时我们必须执行“重新导入所有Maven项目”,例如更新依赖项。问题在于它总是弄乱资源的源文件夹:所有模块都获得“gen”和“target / generated-source / r”,这似乎是重复的原因。所以在重新导入之后,我们需要手动删除其中一个(通常是“gen”文件夹)。当然,我们想避免这一步。我们为Android方面尝试了几种设置,但到目前为止还没有运气。

那么,我们如何配置IntelliJ来进行适当的Maven重新导入呢?

3 个答案:

答案 0 :(得分:2)

根据Sven Strohschein在http://youtrack.jetbrains.com/issue/IDEA-94901的回复,您可以尝试:

  1. 删除“gen”,“target”和“out”文件夹
  2. 还原“ipr”和“iml”文件中的更改(或者只删除它们,甚至可以删除.idea文件夹)
  3. 启动IntelliJ 12
  4. 打开pom文件
  5. 右键单击 - > “Maven” - > “重新导入”
  6. “构建” - > “重建项目”
  7. 对我有用。

答案 1 :(得分:1)

在IDEA检测到并将Android facet添加到模块后,它会在常规位置开始生成gen文件夹,但maven-android-plugin会在target目录下生成自己的文件。

您需要告诉IDEA将生成的文件放在maven-android-plugin创建它们的位置。

首先,使用module的android facet设置并检查选项以使用Maven目标而不是单独生成:

enter image description here

然后,转到模块的设置并设置与Maven相同的输出路径,即target目录:

enter image description here

删除gen目录,执行mvn clean以清除所有不必要的文件。

答案 2 :(得分:0)

从上面的描述中我猜你的项目结构与maven默认值不同。见Introduction to the POM。但是我认为如果你更改了资产目录等,android android:generate-sources会更有趣。

示例:

<sourceDirectory>${basedir}/src</sourceDirectory> 
<outputDirectory>${basedir}/target/classes</outputDirectory>