2014-09-08 1 views
0

Я работаю в случае Rational Clear. Когда я импортирую проект maven в свою локальную систему, и я устанавливаю его, он успешно устанавливается и все классы java компилируются. Когда я пытаюсь работать непосредственно из ясного случая в Eclipse, и я пытаюсь установить тот же проект, я получаю ошибку при компиляции всех классов java.Ошибка: класс в другом каталоге, чем объявлено

Несколько строк Error:

Error building bundle <groupId>:<artifactId>:bundle:2.1.6 : Class in different directory than declared. Path from class name is services/helper/impl/DefaultDroolsHelper.class but the path in the jar is services/helper/impl/defaultdroolshelper.class from Jar:dot 
    [ERROR] Error building bundle <groupId>:<artifactId>:bundle:2.1.6 : Class in different directory than declared. Path from class name is services/helper/impl/DefaultDroolsHelperFactory.class but the path in the jar is services/helper/impl/defaultdroolshelperfactory.class from Jar:dot 
    [ERROR] Error(s) found in bundle configuration 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] BUILD FAILURE 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Total time: 52.422s 
    [INFO] Finished at: Mon Sep 08 04:23:29 EDT 2014 
    [INFO] Final Memory: 15M/49M 

[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:2.3.4:bundle (default-bundle) on project wss-services: Error(s) found in bundle configuration -> [Help 1] 

После установки, в целевой папке, то два списка генерируются: createdfiles.lst

entities\output\clientenrichmenttype$clienttrader.class 
    entities\output\dateadjustmenttype.class 
    entities\dtcc\valuation\output\collateralizedtype.class 
    entities\triresolve\output\objectfactory.class 

Но inputfiles.lst:

entities\dtcc\leireplay\output\SecoryAssetClassType.java 
    entities\dtcc\valuation\output\VerificationType.java 
    entities\dtcc\leireplay\output\package-info.java 
    entities\output\BlockTradeOrAllocationLegType.java 

Пожалуйста, попробуйте решить эту проблему. Спасибо, Ravish

+0

я не вижу никакой разницы, кроме регистрозависимой D в названии Calss: По умолчанию и по умолчанию 'услуги/помощник/осущ/DefaultDroolsHelper.class' ' услуги/помощник/осущ/defaultdroolshelper.class' же это для 'DefaultDroolsHelperFactory', поэтому обязательно сделайте их похожими – Yazan

+0

@ ravish4596 Как вы импортируете проект в eclipse? – Skizzo

+0

@Skizzo Щелкните правой кнопкой мыши по Импортировать и выберите соответствующий проект из представления в ясном случае. – ravish4596

ответ

0

Имя файла в Windows было создано небольшими буквами, хотя имя класса было смешанным. Это работает, потому что Windows не делает различий.

Однако портирован на Linux или OSX или упакован в zip-формате как .jar/.ear/.war, у вас есть проблема.

Исправление имени файла немного волосатое; переименуйте его в другое, а затем переименуйте его правильно. Кроме того, ваша система управления версиями также может зависеть.


Сделал небольшую утилиту CheckJavaFiles исправляя неправильный случай ява файлов под Windows. Имена пакетов, которые он не проверяет. Но слишком много усилий для чего-то, возможно, ненужного; они вообще маленькие буквы.

+0

У меня много классов java. И у всех возникают такие же проблемы. Изменить все не так просто и переименовать. Пожалуйста, посоветуйте мне другое решение. Еще один момент, я работаю в удаленной машине. – ravish4596

+0

Okay написал инструмент, который выполняет переименование. Надеюсь это работает. Перейдите в верхний каталог как параметр. –

+0

Я хочу подтвердить, является ли проблема ясным вопросом или проблемой моего затмения. Не могли бы вы посоветовать это? Потому что, когда я импортирую проект из прозрачного футляра в свою локальную систему и устанавливаю, он отлично работает. Но, если я напрямую подключаюсь к моему проекту представления и пытаюсь установить, я получаю этот тип ошибки. – ravish4596

Смежные вопросы