1

我正在为 SBT 创建我自己的 wro4j 插件,因为我的项目有一些特殊要求无法直接通过 xsbt-wro4j-plugin 实现。

我检查了 xsbt-wro4j-plugin 的源代码(此处)以及 wro4j API 文档,以深入了解文件创建过程,但我在这里有点困惑。据我所知,插件使用 Mockito 以某种方式生成必要的资源,但我不明白它如何与 wro4j 本身合作。如果我是对的,这整个 Mockito 的东西就是一个 hack,所以我们可以使用 SBT 的缓存机制。

问题 #1 是我们是否可以在不失去缓存支持的情况下避免这种 Mockito 巫术。
问题 #2:什么负责在 wro4j 中创建文件?我可以覆盖它吗?

4

1 回答 1

1

这不一定是您所有问题的答案,而是解释 xsbt wro4j 插件(和 wro4j-maven-plugin)使用 mockito 的原因。

wro4j 最初仅作为运行时解决方案(使用 HttpServletFilter)创建,以最大限度地减少动态资源。因此,内部 API 基于 servlet-api(更具体地说是 HttpServletRequest 和 HttpServletResponse 对象)。后来,当需要构建时解决方案时,不是更改框架的内部结构,而是应用了一种合适的解决方法:在非 servlet 环境中使用 servlet-api 存根机制(构建时)。

我认为长期方法的方式是:使 wro4j、servlet-api 不可知,并允许构建时解决方案(如 maven 插件或 xsbt 插件)不需要使用此解决方法。不幸的是,为了做到这一点,应该改变 wro4j 的内部结构,这需要一个主要版本(与以前的版本不兼容)。考虑到这样做所需的工作量,这很可能会被推迟。

于 2013-08-07T22:09:22.120 回答