Я написал новую проверку чека в качестве файла. Я смоделировал свои юниты после кода, который я нашел в коде checkstyle. Юниты работают отлично, и все выглядит хорошо.NoClassDefFoundError при запуске checkstyle
Но тогда я добавляю чек в свой проект.
<module name="TreeWalker">
<property name="tabWidth" value="4" />
<module name="com.onuspride.codetools.checkstyles.DuplicateClassNames"/>
</module>
и мой муравей задача
<taskdef resource="checkstyletask.properties">
<classpath refid="classpath" />
</taskdef>
<property name="checkstyle.suppressions.file" value="checkstyle/suppressions.xml" />
<property name="translation.severity" value="error" />
<target name="checkStyle" description="TestTask to evaluate the checkstyle system.">
<checkstyle config="checkstyle/checkstyle_checks.xml">
<fileset dir="${msg.src}" includes="**/*.java" />
<formatter type="plain" />
<formatter type="xml" toFile="${msg.build.jar}/checkstyle_errors.xml" />
<classpath refid="classpath" />
</checkstyle>
</target>
класс duplicateclassnames называет несколько классов в том же банке. По какой-то причине, когда ant запускает его, ant находит класс проверки, но не может найти вспомогательные классы, когда все они находятся в одном файле jar. вот что я получаю от муравья
[checkstyle] [class]:0: Got an exception - java.lang.NoClassDefFoundError: com/onuspride/codetools/common/classpath/criteria/ClassNameCriteriaCollector
Im stumped. Ive проверил все зависимости моего jar, все они находятся в пути к классам, я не понимаю, как он может найти один файл класса, но не другой в той же банке. Я сделал все мои грязные маленькие трюки, и я просто не понимаю.
любые идеи?
** Я не понимаю, как он может найти один файл класса, но не другой в том же банке **: можете ли вы рассказать, какой класс вы нашли, а какие нет, под каким файлом jar. –
класс проверки com.onuspride.codetools.checkstyles.DuplicateClassNames и класс, который он не может найти, и содержатся в одной и той же банке. com.onuspride.codetools.common.classpath.criteria.ClassNameCriteriaCollector – scphantm