1.一种应用构建方法,其特征在于,所述方法包括:
获取用于构建应用的输入文件集合、用于构建应用的构建操作集合以及所述构建操作集合中各个构建操作之间的执行顺序信息;
按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,将所述输入文件集合中的每个输入文件划分到与该输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中,其中,由每个入口构建操作所对应的输入文件子集合中的各个输入文件的文件存储路径和文件内容形成的文件对象是该入口构建操作的输入参数;
对所述构建操作集合中的每个构建操作,执行以下第一构建步骤:在该构建操作没有前置构建操作或前置构建操作都已经完成的情况下,对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作,并在该构建操作有后置构建操作的情况下将执行该构建操作后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中;
将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件。
2.根据权利要求1所述的方法,其特征在于,所述构建操作集合中执行顺序相邻的两个构建操作根据执行顺序划分为前置构建操作或后置构建操作,没有前置构建操作的构建操作划分为入口构建操作,没有后置构建操作的构建操作划分为出口构建操作。
3.根据权利要求2所述的方法,其特征在于,所述构建操作包括批处理文件构建操作和单个文件构建操作;以及
所述对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作,并在该构建操作有后置构建操作的情况下将执行该构建操作后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中,包括:
判断该构建操作是批处理文件构建操作还是单个文件构建操作;
如果该构建操作为批处理文件构建操作,则:对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作,并在该构建操作有后置构建操作的情况下将执行该构建操作后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中,并递归删除缓存中该构建操作以及该构建操作的每个后置构建操作对应的缓存区域中以该构建操作的输出参数中的每个文件对象的文件存储路径为索引的文件内容;
如果该构建操作为单个文件构建操作,则:对该构建操作的输入参数中的每个文件对象,执行以下第二构建步骤:判断该构建操作对应的缓存区域中是否存在以该文件对象的文件存储路径为索引的文件内容;如果存在,则将由该文件对象的文件存储路径和该构建操作对应的缓存区域中以该文件对象的文件存储路径为索引的文件内容形成的文件对象添加到该构建操作的输出参数中;如果不存在,则对该文件对象的文件内容执行该构建操作,并将执行后所得到的文件内容以该文件对象的文件存储路径为索引写入该构建操作对应的缓存区域中,将由该文件对象的文件存储路径和该构建操作对应的缓存区域中以该文件对象的文件存储路径为索引的文件内容形成的文件对象添加到该构建操作的输出参数中;在该构建操作有后置构建操作的情况下将对该构建操作执行完所述第二构建步骤后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
监听所述输入文件集合中是否有输入文件的文件内容发生变化;
如果是,则获取所述输入文件集合中文件内容发生变化的各个输入文件,并组成变化输入文件集合;对所述构建操作集合中每个构建操作,将该构建操作对应的缓存区域中以所述变化输入文件集合中每个变化输入文件的文件存储路径为索引的文件内容删除;对所述变化输入文件集合中的每个变化输入文件,按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,将该变化输入文件重新划分到与该变化输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中;对所述构建操作集合中的每个构建操作,执行所述第一构建步骤;将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
监听所述输入文件集合中是否有输入文件被删除;
如果是,则对每个被删除的输入文件,将该被删除的输入文件从该被删除的输入文件上次被划分到的入口构建操作的输入文件子集合中删除;对所述构建操作集合中的每个构建操作,将该构建操作对应的缓存区域中以每个被删除的输入文件的文件存储路径为索引的文件内容删除;对所述构建操作集合中的每个构建操作,执行所述第一构建步骤;将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
监听所述输入文件集合中每个输入文件所在的文件夹中是否有文件增加;
如果是,则按照预定义的文件存储路径与各个入口构建操作的对应关系,将所增加的每个输入文件划分到与该所增加的输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中;对所述构建操作集合中的每个构建操作,执行所述第一构建步骤;将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘。
7.根据权利要求2所述的方法,其特征在于,所述按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,将所述输入文件集合中的每个输入文件划分到与该输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中,包括:
按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,对所述输入文件集合中的每个输入文件,查找与该输入文件的文件存储路径对应的入口构建操作;响应于找到与该输入文件的文件存储路径对应的入口构建操作,则将该输入文件划分到与该输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中;响应于未找到与该输入文件的文件存储路径对应的入口构建操作,则将该输入文件划分到剩余文件子集合中;以及
所述将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件,包括:
将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件的第一子集;
将所述剩余文件集合中的各个文件的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件的第二子集。
8.根据权利要求4所述的方法,其特征在于,所述在该构建操作没有前置构建操作或前置构建操作都已经完成的情况下,对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作之前,所述第一构建步骤还包括:
解析该构建操作的输入参数中每个文件对象的文件内容,并提取该文件对象所依赖的文件的文件存储路径,分别用该文件对象的文件存储路径和所提取的该文件对象所依赖的文件的文件存储路径更新文件依赖关系表中的文件存储路径和所依赖文件存储路径;以及
所述获取所述输入文件集合中文件内容发生变化的各个输入文件,并组成变化输入文件集合,包括:
获取所述输入文件集合中文件内容发生变化的各个输入文件,组成第一变化输入文件集合;
对所述第一变化输入文件集合中的每个变化输入文件,在所述文件依赖关系表中查询与该变化输入文件的文件存储路径相同的所依赖文件存储路径,用与查询到的所依赖文件存储路径对应的各个文件存储路径所指示的各个输入文件组成依赖于该变化输入文件的依赖输入文件子集合;
合并所述第一变化输入文件集合中的各个变化输入文件的依赖输入文件子集合,得到第二变化输入文件集合;
组合所述第一变化输入文件集合和所述第二变化输入文件集合得到变化输入文件集合。
9.根据权利要求1-8中任一所述的方法,其特征在于,所述构建操作包括以下至少一项:去除注释、合并、代码混淆、压缩、加密、解密。
10.一种应用构建装置,其特征在于,所述装置包括:
获取单元,配置用于获取用于构建应用的输入文件集合、用于构建应用的构建操作集合以及所述构建操作集合中各个构建操作之间的执行顺序信息;
划分单元,配置用于按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,将所述输入文件集合中的每个输入文件划分到与该输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中,其中,由每个入口构建操作所对应的输入文件子集合中的各个输入文件的文件存储路径和文件内容形成的文件对象是该入口构建操作的输入参数;
执行单元,配置用于对所述构建操作集合中的每个构建操作,执行以下第一构建步骤:在该构建操作没有前置构建操作或前置构建操作都已经完成的情况下,对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作,并在该构建操作有后置构建操作的情况下将执行该构建操作后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中;
存储单元,配置用于将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件。
11.根据权利要求10所述的装置,其特征在于,所述构建操作集合中执行顺序相邻的两个构建操作根据执行顺序划分为前置构建操作或后置构建操作,没有前置构建操作的构建操作划分为入口构建操作,没有后置构建操作的构建操作划分为出口构建操作。
12.根据权利要求11所述的装置,其特征在于,所述构建操作包括批处理文件构建操作和单个文件构建操作;以及
所述执行单元进一步配置用于:
判断该构建操作是批处理文件构建操作还是单个文件构建操作;
如果该构建操作为批处理文件构建操作,则:对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作,并在该构建操作有后置构建操作的情况下将执行该构建操作后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中,并递归删除缓存中该构建操作以及该构建操作的每个后置构建操作对应的缓存区域中以该构建操作的输出参数中的每个文件对象的文件存储路径为索引的文件内容;
如果该构建操作为单个文件构建操作,则:对该构建操作的输入参数中的每个文件对象,执行以下第二构建步骤:判断该构建操作对应的缓存区域中是否存在以该文件对象的文件存储路径为索引的文件内容;如果存在,则将由该文件对象的文件存储路径和该构建操作对应的缓存区域中以该文件对象的文件存储路径为索引的文件内容形成的文件对象添加到该构建操作的输出参数中;如果不存在,则对该文件对象的文件内容执行该构建操作,并将执行后所得到的文件内容以该文件对象的文件存储路径为索引写入该构建操作对应的缓存区域中,将由该文件对象的文件存储路径和该构建操作对应的缓存区域中以该文件对象的文件存储路径为索引的文件内容形成的文件对象添加到该构建操作的输出参数中;在该构建操作有后置构建操作的情况下将对该构建操作执行完所述第二构建步骤后所得到的输出参数中的各个文件对象添加到该构建操作的各个后置构建操作的输入参数中。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第一监听单元,配置用于监听所述输入文件集合中是否有输入文件的文件内容发生变化;
第一重构单元,配置用于如果监听到所述输入文件集合中有输入文件的文件内容发生变化,则获取所述输入文件集合中文件内容发生变化的各个输入文件,并组成变化输入文件集合;对所述构建操作集合中每个构建操作,将该构建操作对应的缓存区域中以所述变化输入文件集合中每个变化输入文件的文件存储路径为索引的文件内容删除;对所述变化输入文件集合中的每个变化输入文件,按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,将该变化输入文件重新划分到与该变化输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中;对所述构建操作集合中的每个构建操作,执行所述第一构建步骤;将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二监听单元,配置用于监听所述输入文件集合中是否有输入文件被删除;
第二重构单元,配置用于如果监听到所述输入文件集合中有输入文件被删除,则对每个被删除的输入文件,将该被删除的输入文件从该被删除的输入文件上次被划分到的入口构建操作的输入文件子集合中删除;对所述构建操作集合中的每个构建操作,将该构建操作对应的缓存区域中以每个被删除的输入文件的文件存储路径为索引的文件内容删除;对所述构建操作集合中的每个构建操作,执行所述第一构建步骤;将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘。
15.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第三监听单元,配置用于监听所述输入文件集合中每个输入文件所在的文件夹中是否有文件增加;
第三重构单元,配置用于如果是,则按照预定义的文件存储路径与各个入口构建操作的对应关系,将所增加的每个输入文件划分到与该所增加的输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中;对所述构建操作集合中的每个构建操作,执行所述第一构建步骤;将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘。
16.根据权利要求11所述的装置,其特征在于,所述划分单元包括:
查找模块,配置用于按照预定义的文件存储路径与所述构建操作集合中各个入口构建操作的对应关系,对所述输入文件集合中的每个输入文件,查找与该输入文件的文件存储路径对应的入口构建操作;
第一划分模块,配置用于响应于找到与该输入文件的文件存储路径对应的入口构建操作,则将该输入文件划分到与该输入文件的文件存储路径对应的入口构建操作所对应的输入文件子集合中;
第二划分模块,配置用于响应于未找到与该输入文件的文件存储路径对应的入口构建操作,则将该输入文件划分到剩余文件子集合中;以及
所述存储单元包括:
第一存储模块,配置用于将各个出口构建操作执行完所述第一构建步骤后所得到的输出参数中的各个文件对象的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件的第一子集;
第二存储模块,配置用于将所述剩余文件集合中的各个文件的文件内容以文件形式存储到磁盘,其中,所存储到磁盘的各个文件是构建所得到的应用的文件的第二子集。
17.根据权利要求13所述的装置,其特征在于,所述在该构建操作没有前置构建操作或前置构建操作都已经完成的情况下,对该构建操作的输入参数中各个文件对象的文件内容执行该构建操作之前,所述第一构建步骤还包括:
解析该构建操作的输入参数中每个文件对象的文件内容,并提取该文件对象所依赖的文件的文件存储路径,分别用该文件对象的文件存储路径和所提取的该文件对象所依赖的文件的文件存储路径更新文件依赖关系表中的文件存储路径和所依赖文件存储路径;以及
所述第一重构单元进一步配置用于:
获取所述输入文件集合中文件内容发生变化的各个输入文件,组成第一变化输入文件集合;
对所述第一变化输入文件集合中的每个变化输入文件,在所述文件依赖关系表中查询与该变化输入文件的文件存储路径相同的所依赖文件存储路径,用与查询到的所依赖文件存储路径对应的各个文件存储路径所指示的各个输入文件组成依赖于该变化输入文件的依赖输入文件子集合;
合并所述第一变化输入文件集合中的各个变化输入文件的依赖输入文件子集合,得到第二变化输入文件集合;
组合所述第一变化输入文件集合和所述第二变化输入文件集合得到变化输入文件集合。
18.根据权利要求10-17中任一所述的装置,其特征在于,所述构建操作包括以下至少一项:去除注释、合并、代码混淆、压缩、加密、解密。