【发布时间】:2014-03-13 15:48:40
【问题描述】:
让我们从我的设置开始。 我有一个多模块 Maven 项目:
ProjectRoot
\moduleA
\moduleB
moduleA的(相关)内容:
- AndroidManifest.xml
- src\main\java\HelloWorldActivity
- src\test\java\HelloWorldActivityTest
HelloWorldActivityTest 注释为:@RunWith(RoboelectricTestRunner.class)
我的问题是,如果我指定清单位置,它将在 IntelliJ IDEA 或 Maven 中不起作用(从命令提示符)。
如果我将位置指定为:“/moduleA/AndroidManifest.xml”,它可以在 IntelliJ 中使用 如果我将位置指定为“/AndroidManifest.xml”,它将在 Maven 中工作
因此指定的路径将被解释为相对于项目根目录(在 Maven 的情况下)或项目模块(在 IntelliJ 的情况下)
为了使其在这两种情况下都能正常工作,我现在使用了一个丑陋的解决方法,即在使用 maven 构建项目时设置一个属性,如果没有设置该属性,我会这样做:
System.setProperty("android.manifest", "moduleA/AndroidManifest.xml");
System.setProperty("android.resources", "moduleA/res");
System.setProperty("android.assets", "moduleA/assets");
请告诉我有更好的方法。 不,我不会改变项目结构来拥有一个单独的测试模块(除非你给我一个很好的理由)!
【问题讨论】:
标签: android maven intellij-idea robolectric