是否可以设置IntelliJ Android项目与maven一起使用?

时间:2011-09-17 05:56:17

标签: android maven intellij-idea

我想在IntelliJ Android项目中使用maven依赖项。有没有人成功使用IntelliJ来处理使用maven的Android项目?

2 个答案:

答案 0 :(得分:43)

我在Ubuntu 11.10和Mac OS X 10.7.3上使用IntelliJ IDEA(目前版本为v11.0.2,版本为111.277)来处理基于Maven的Android项目,并且在大多数情况下它运行良好。使用IntelliJ与Android和Maven的一个好处是所有支持都已内置 - 没有额外的IDE插件可供安装。

作为可以使用IntelliJ打开的良好工作Android Maven项目的示例,您可以使用GitHub的开源Gaug.es for Android应用程序的源代码(并非GitHub上的所有开发人员都使用IntelliJ,我个人而言do - Eclipse也用于处理这个项目。)

平稳运行的第一步显然是确保您的项目在命令行中仅使用普通Maven正确构建 - 虽然问题没有直接询问这一点,但我建议将这些先决条件作为最低限度:

  • Java 6
  • Maven v3.0.3
  • android-maven-plugin v3.1.1
  • Android SDK r16(如果您在r15之前下载了SDK,那么您可能最好还是整理所有内容并再次下载,因为目录布局已更改)

如果您可以mvn install项目的父pom,那么您可以继续使用IntelliJ实际使用它。

  • 如果这是第一次使用IntelliJ打开项目,您仍然可以将其作为项目打开,只需在“打开项目”对话框中选择父pom.xml文件即可。
  • 确保IntelliJ知道Java SDK的位置。 IntelliJ即使在Java上运行,也不会自动检测SDK的位置。你必须告诉它。转到Project StructurePlatform SettingsSDKs然后编辑Java SDK,如果它显示为红色,则为其提供Java 6 SDK的路径。
  • 在同一个Project Structure对话框窗口中,将Project SDK设置为相应的Android版本,然后在Project下将Project compiler output设置为您喜欢的目录名称 - 此值执行'Make'是必需的,但也被子模块覆盖,以便敏感地指向Maven'目标'目录。
  • 仔细检查IntelliJ是否已解析所有Maven信息。您应该有一个Maven Projects标签。点击Reimport All Maven Projects按钮(看起来像两个箭头互相追逐)。如果IntelliJ提示您启用自动导入,请转到它。您现在应该在Maven Projects选项卡下至少列出一个模块,如果您还有集成测试项目,则应该有更多模块。

此时,您应该拥有相当有意义的IDE体验。应该有效的东西:

  • 由于没有明显的原因,应该没有红色下划线的代码。
  • 应识别所有导入(无论是来自Android SDK,Java,您自己的代码还是来自apklib)。请注意,apklib支持仅在IntelliJ IDEA v10.5后期发布。
  • 重构行动。
  • Force regenerate R.java file应正确刷新target/generated-sources/r/...下的文件 - 但只有target/generated-sources/r已设置为源路径,即由Maven生成,并由的IntelliJ。最小命令行替代方法是从受影响模块的文件夹中的命令行执行mvn android:generate-sources
  • 在IDE中对项目进行“制作”在技术上有效,但出于同样的原因可能再次失败。我在命令行使用mvn packageinstall调用我的所有构建。

可能不起作用的东西:

  • 从IDE运行单独的集成测试(使用ClassNotFoundException: junit.textui.ResultPrinter消亡)

如果IntelliJ感到困惑,以下步骤通常会让您回到正轨:

    命令行
  • mvn clean install
  • 点击Reimport All Maven Projects按钮

一些建议:

  • 您的Maven pom.xml文件应该是项目配置的真实来源。最大限度地减少您在项目设置中执行的IntelliJ特定配置 - 下次从Maven POM重新导入设置时,其中一些可能会被擦除 - 并尝试避免将IntelliJ项目文件提交到源代码控制中。

希望有所帮助!

答案 1 :(得分:12)

请参阅Getting Started with the maven-android-plugin

此处可以使用命令创建具有Maven结构的样本工作模板:

mvn archetype:generate \
  -DarchetypeArtifactId=android-with-test \
  -DarchetypeGroupId=de.akquinet.android.archetypes \
  -DarchetypeVersion=1.1.0 \
  -DgroupId=com.foo.bar \
  -DartifactId=my-android-project \
  -Dpackage=com.foo.bar.android
BTW,IntelliJ内置了对maven的支持,所以只需从中打开pom.xml - 一切都会好的。