错误:与声明的目录不同的类

时间:2014-09-08 08:51:48

标签: java eclipse maven

我在Rational Clear案例中工作。 当我在本地系统中导入maven项目时,安装完成后,它会成功安装并且所有java类都在编译。 当我尝试直接从Eclipse中的clear case工作时,我尝试安装相同的项目时,编译所有java类时出错。

几行错误:

 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

请尝试解决此问题。 谢谢, 奸污

1 个答案:

答案 0 :(得分:0)

Windows上的文件名显然是用小写字母创建的,尽管类名是混合大小写的。这是有效的,因为Windows没有区别。

无论是移植到Linux或OSX,还是以zip格式打包为.jar / .ear / .war,都会出现问题。

更正文件名有点毛茸茸;将其重命名为其他内容,然后正确重命名。此外,你的版本控制系统也可能会起作用。


在Windows下制作了一个小实用程序CheckJavaFiles来纠正错误的java文件。 包名称不检查。但是对某些事情的过多努力可能是不必要的;他们一般都是小写字母。