2012-02-29 46 views
3

我有一個Maven項目,我使用Codehaus Axis Tools插件來運行WSDL2Java。如何告訴Axis WSDL2Java從JAR中獲取WSDL?

不幸的是,我沒有直接控制我的WSDL--它們在我的Maven倉庫中的JAR中提供給我。我的項目對WSDL JAR具有Maven依賴性,因此WSDL文件是我的類路徑中的資源。

是否可以配置WSDL2Java從JAR內部獲取WSDL文件?或者更具體地說,從資源類路徑?

望着在Codehaus(http://mojo.codehaus.org/axistools-maven-plugin/wsdl2java-mojo.html)的文件,我看到有兩個配置參數sourceDependecieswsdlFiles,我也許能使用 - 但沒有太多關於如何使用它們的信息。

我曾嘗試以下

<sourceDependencies> 
    <sourceDependency> 
    <groupId>myGroupId</groupId> 
    <artifactId>myArtifactId</artifactId> 
    <version>myVersion</version> 
    </sourceDependency> 
</sourceDependecies> 
<wsdlFiles> 
    <wsdlFile>myFile.wsdl</wsdlFile> 
</wsdlFiles> 

<sourceDependencies> 
    <sourceDependency> 
    <groupId>myGroupId</groupId> 
    <artifactId>myArtifactId</artifactId> 
    <version>myVersion</version> 
    <file>myFile.wsdl</file> 
    </sourceDependency> 
</sourceDependecies> 

其中myFile.wsdl是由相關性確定的JAR,插件的配置內部資源,但無濟於事。

由於<configuration>在Maven中不是強類型,所以很難弄清楚可能發生或可能不發生的事情。

更新:我不一定需要使用Axis。如果它支持將WSDL文件作爲類路徑上的資源讀取,那麼我也可以使用其他框架的WSDL到Java生成工具來創建我的存根。任何建議?

+0

解壓縮你的jar是否是一個選項?你可以爲此創建一些螞蟻任務。 – 2012-02-29 10:26:55

+0

我可以解壓JAR,但看起來有些複雜。包含WSDL的JAR還包含類和XSD,它們依賴於我的項目,因此它位於類路徑中。 – Vihung 2012-02-29 10:35:07

回答

0

你可以嘗試這樣的:

<sourceDependencies> 
    <sourceDependency> 
    yourGroupId:yourArtifactId:yourVersion:yourFile.wsdl 
    </sourceDependency> 
</sourceDependecies> 

它是如何可怕的是!

+1

你能解釋你的答案是如何工作的嗎? – 2014-10-28 15:42:03

相關問題