Использование Eclipse Java Compiler (ecj) в сборках maven
я есть такой код:
protected <T> T doSomething(String someParam, Class<T> clazz) {
...
}
который я использую в классе TestCase:
Class clazz = MyClass.class;
MyClass MyClass = someObject.doSomething(someString, clazz);
Этот код дает предупреждение в затмении:
Класс является необработанным типом. Ссылки на универсальный тип Class должны быть параметризованы
а также
Несколько маркеров на этой линии
- Безопасность типов: непроверенный вызов doSomething (String, Class) универсального метода doSomething (String, Class) типа MyClass
- Безопасность типов: для выражения типа Class требуется непроверенное преобразование для соответствия классу.
Когда я запускаю этот код (тест) в Eclipse - все работает отлично. Когда я делаю это через "mvn clean install" через командную строку, Я получил:
C: \ pathToProject \ src \ test \ java \ packagesPath \ MyTestCase.java: [xx, xxx] найдены несовместимые типы:
java.lang.Object
обязательно: com.somePackagePath.MyClass
Но при предоставлении:
Class<MyClass> clazz = MyClass.class;
MyClass MyClass = someObject.doSomething(someString, clazz);
Я не получаю ни ошибок, ни предупреждений. .
Я понимаю, что Java компиляторстирает информацию о типе, так:
Разве затмение не должно выдавать ошибку компилятора вместо предупреждения, или это maven-plugin-compiler, который создает проблему?
Плагин Maven это:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<showDeprecation>false</showDeprecation>
<debug>true</debug>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
С уважением,
деспот