2011-02-11 162 views
0

**请参阅结构与下述问题有关。 “=>”指的是依赖/类路径条目解决依赖

我想通过我的自定义文件(具有相同名称&包结构)覆盖jar中的Test.java文件(称为original.jar)。例如Test.java文件是original.jar为“org.sample.Test”上市,我已经创建了相同的名称和封装结构的文件我的项目中(比如项目“放心”),如org.sample.Test在在类路径中的主项目的src目录。

depends项目被另一个项目作为jar(Depend.jar)使用,但是这个另一个项目(称为“Main”项目)没有引用我在Depend项目中签入的文件,而是引用了文件original.jar depends.jar(作为依赖)。我应该如何解决它。

我不能使用子类覆盖Test.java文件,因为所有的方法都是静态的。


结构: -

主项目=> Depend.jar Depends.jar => Original.jar


-Original.jar具有需要是Test.java文件覆盖 -Depends.jar也具有相同的封装结构,在Original.jar(org.sample)内Test.java文件 - 主项目应该是指的是从Original.jar检查中依靠项目,而不是Test.java。原始将Depends中的项目被称为使用其他类从Original.jar除了Test.java文件

+0

创建jar with dependencies使用Original.jarmaven assembly pluginDepend.jar,在这个过程中,不包括Test.java我不理解一个词 –

回答

0

这是我从你的问题理解。

Original.jar包含Test.javaDepend.jar取决于Original.jar。它还包含一个Test.javaMain.jarOriginal.jar

我们希望Main.jar使用的Depend.jarTest.java取决于Depend.jar(和transitively?)和不是Original.jar

这里有几个方法可以做到这个。

  • 如果Main.jar不需要Original.jarexcludeOriginal.jardependency声明Depend.jar
  • 重新打包Original.jar排除Test.java
  • Original.jar
+0

选择1 - 我cannnot删除Depend.jar,因为它拥有所有有用的在Original中使用。jar – user593029

+0

选项2重新包装在我的情况下不是一个好的选择,因为它是第三方包,我们可以在发布时使用它的新版本 – user593029

+0

选项3排除是不可能的,因为它是由工具生成的,即wsdl2Java。 Acutally创建存根,并创建它们的依赖Java文件以支持存根类。我想知道如果我们无法使用maven依赖关系解决,是否有可能控制wsdl2java实用程序如何创建支持类 – user593029