如何创建ImportControl模块,该模块不允许在多个src文件夹中导入某些已定义的类? - 类在自己的项目中定义,但不允许在生产代码中使用,在其他单元测试中也是如此。
这甚至可能吗?首先我定义了一个模块:
<module name="ImportControl">
<property name="severity" value="error"/>
<property name="file" value="${config_loc}/import_control.xml"/>
</module>
现在我需要一个像这样的控件导入器:
<!DOCTYPE import-control PUBLIC "-//Puppy Crawl//DTD Import Control 1.1//EN"
"http://www.puppycrawl.com/dtds/import_control_1_1.dtd">
<import-control pkg=toset>
...
</import-control>
我的第一种方法是在正则表达式的帮助下设置不允许的标记,以便无法导入所选文件。问题是我无法将pkg定义为“src”。
有没有办法只使用import-control.xml来处理这个问题?
答案 0 :(得分:0)
我担心使用ImportControl是不可能的。
原因是您可以在import-control.xml中指定的任何内容引用包,但不引用源文件夹或项目。 Checkstyle不知道源文件夹或项目,因为它与IDE无关,而且这些是Eclipse构造。 import-control.xml也不能引用绝对文件名,因为Checkstyle不知道引用类的绝对文件名。
解决此问题的一种方法是选择禁用的包,以便它们都包含一个公共组件(如com.foo.FORBIDDEN.pkg
)。然后你可以禁止使用这样标记的包。
此外,您可以编写自己的Eclipse感知Checkstyle检查。我曾经做过一次,并且成功了,但我可以告诉你,即使你知道自己在做什么,也要做好几天的工作。