Closed Guaidaodl closed 7 years ago
@Guaidaodl 必然的,freeline只根据时间戳进行判断,而不是文件的md5。不过,你配置的文件生成目录是否有问题呢?通常来说如果文件生成在build目录下的话,freeline是不会去检查那里的文件变化的。
如果可以给出sample工程,或者工程的配置的话,应该可以帮助你解决这个问题
原因我明白. 只是希望改进一下.
@Guaidaodl 这个不好做改动,为了增加扫描效率所以使用了时间戳判断。按理说,如果处理的好的话,GreenDao生成的文件应该都不会在正常的sourceSets里,应该在build目录下,不会被扫描的...
如果要真的做改动的话,只能加入文件监听watchman,就目前来说主要还是增加了工程的复杂度,不利于快速集成,不是很值得这么去处理。
@lomanyong 不要加入监听啊, 第一次生成的时候写入 md5, 然后一样用 mtime 判断, mtime 不一样的情况下再用 md5 值确定一下是否发生改变就好了.这样应该基本只会影响第一次的效率.
只是我个人想法啊. 看了一下源码, 最初也有考虑 md5, 不过后来抛弃了. 应该还有一些我不知道的原因. FreeLine 还是很好用的.
项目中用到了 GreenDao, 为了方便, 每次 Build 之前都会重新生成一次代码. 大部分时候代码是不会有变化. 只是文件的创建时间变了.
FreeLine 每次都会认为文件改变. 然后因为改变的文件个数太多导致触发全量编译.