Cordova Plugin替代< source-file>标签以复制整个目录内容

cgfeq70w  于 2022-11-15  发布在  其他
关注(0)|答案(3)|浏览(132)

是否有任何方法可以在plugin.xml中指定使用一个dir copy语句或自动复制src目录中的每个文件,将插件源文件夹中的每个文件复制到目标平台目录。
使用被复制作为大插件的一部分是噩梦,因为我们看到在大规模的重构过程中需要手动更改。

ykejflvf

ykejflvf1#

我还不能投票:(但Rafita是正确的。为了扩展这个答案,我做了同样的事情,因为我有一个大的文件集,组成了一个Android Activity,其中包括许多java源文件,资产,布局和资源,都需要安装到平台中(并与任何现有的由核心Android插件生成的文件合并)。

  • 对于Android,我复制了我的整个活动的源代码到android插件目录,然后安排复制他们都像这样:

<source-file src="src/android/java/com/acme" target-dir="src/com" />会将整个软件包树复制到platforms/android/src/com/acme目录中。
而对于资源和资产,你可以这样做:
<resource-file src="src/android/res" target="res" /> <resource-file src="src/android/assets" target="assets" />

  • 对于iOS,

<source-file src="src/ios" target-dir="src"/>将所有源文件从plugin/src/ios目录复制到platforms/ios/Project-Name/Plugins/plugin-name目录

jaxagkaj

jaxagkaj2#

您可以执行与处理任何文件相同的操作。
只需用途:

<source-file src="src/android/libs/YourDIR" target-dir="libs"/>

Cordova会认识到这一点,从而会将整个YourDIR复制到一个目标库中,例如。

bfhwhh0e

bfhwhh0e3#

之所以会发生这种情况,是因为我将插件文件隐藏在一个嵌套的文件夹结构中(这是Java通常需要的):

-- my-plugin/
   +-- src/
       +-- com/
           +-- abc/
               +-- def/
                   +-- MyPlugin.java

plugin.xml设置与此不匹配。特别是

<param name="android-package" value="com.abc.def.MyPlugin"/>

必须包含具有完全限定命名空间的类名。还要确保<source-file>元素具有正确的值。
下面是更多的plugin.xml文件供参考:

<platform name="android">
    <config-file target="res/xml/config.xml" parent="/*">
        <feature name="MyPlugin">
            <param name="android-package" value="com.abc.def.MyPlugin"/>
        </feature>
    </config-file>
    ...
    <source-file src="src/com/abc/def/MyPlugin.java" target-dir="com/abc/def" />
</platform>

相关问题