使用Android maven插件设置过滤后的资源

时间:2015-03-18 13:26:43

标签: android maven android-maven-plugin

我在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插件不是一种选择。

任何帮助将不胜感激。

非常感谢并且抱歉这个非常棒的帖子。

1 个答案:

答案 0 :(得分:1)

新插件遵循新的文件夹结构。

我建议您切换到正确的文件结构。 res&amp;资产需要在src / main /中,而不是直接在项目的根目录中。

第二种解决方案是使用标志禁用该错误(读取错误信息稍高一点,以查看该信息和标志名称,但我不建议使用该解决方案)