我在Android项目中使用maven并使用Android Maven Plugin v4.0.0来编译它。
Mi问题是,我在pom中有不同的配置属性,如果我想编译为develop,release ...并在/ target / filtered-res中获取我想要的正确值。例如:
的pom.xml
<profile>
<id>release</id>
<activation>
<property>
<name>release</name>
</property>
</activation>
<properties>
<!-- server for release -->
<server.host>server.release.com</server.host>
<server.port>443</server.port>
</properties>
</profile>
<profile>
<id>develop</id>
<activation>
<property>
<name>develop</name>
</property>
</activation>
<properties>
<!-- server for develop -->
<server.host>server.develop.com</server.host>
<server.port>8080</server.port>
</properties>
</profile>
然后在mi res文件夹中,在properties.xml中:
<!-- Server -->
<string name="host">${server.host}</string>
<string name="port">${server.port}</string>
通过这种方式,我总是在target / filtered-res,properties.xml中进行适当的配置。
<!-- Server -->
<string name="host">server.release.com</string>
<string name="port">443</string>
<!-- Configuration if I've compiled for release -->
所有这些都与旧的Android Maven插件(com.jayway.maven.plugins.android.generation2)v3.6.0配合使用,具有以下配置:
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<version>3.6.0</version>
<configuration>
<manifest>
<debuggable>true</debuggable>
</manifest>
<sdk>
<platform>${android.platform}</platform>
</sdk>
<resourceDirectory>${project.build.directory}/filtered-res</resourceDirectory>
</configuration>
</plugin>
根据需要设置资源目录,&#34; filtered-res&#34;配置正确。
但是,当升级到Android Maven Plugin 4.0.0时,编译时失败显示以下消息:
[WARNING] Non-standard location of Android res folder found, but not configured:
/Users/myUser/RepoGit/workspace/myProject/res
Move to the standard location src/main/res/
Or configure resourceDirectory.
配置与以前相同......
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<version>4.0.0</version>
<configuration>
<manifest>
<debuggable>true</debuggable>
</manifest>
<sdk>
<platform>${android.platform}</platform>
</sdk>
<resourceDirectory>${project.build.directory}/filtered-res</resourceDirectory>
</configuration>
</plugin>
如您所见,资源目录已设置...但插件声明并且构建失败。
我可以将我的res文件夹移动到/ src / main / res,因为警告消息显示...但是这并没有解决我的问题,因为我的过滤资源具有正确的值位于/ target / filtered-水库
任何人都可以告诉我出了什么问题?
并且,如果没有任何错误,这是插件的错误...是否有另一种方法来编译pom文件中的不同配置?
注意:降级到旧的Android Maven插件不是一种选择。
任何帮助将不胜感激。
非常感谢并且抱歉这个非常棒的帖子。
答案 0 :(得分:1)
新插件遵循新的文件夹结构。
我建议您切换到正确的文件结构。 res&amp;资产需要在src / main /中,而不是直接在项目的根目录中。
第二种解决方案是使用标志禁用该错误(读取错误信息稍高一点,以查看该信息和标志名称,但我不建议使用该解决方案)