簡體   English   中英

將文件生成到另一個包pom.xml中

[英]Generate the files into a different package pom.xml

這是我的文件夾層次結構:

|-src
|  |-main
|  |  |-java
|  |  |  |-pt.thales.attracktive.communication
|  |  |  |  |-pojo
|  |  |  |  |  |-...
|  |  
|  |-resources
|  |  |-...
|
|-target
|  |-generate-sources
|  |  |-xjc
|  |  |  |-uk.org.siri.siri
|  |  |  |  |-...

我正在將.xsd文件生成為.java。 通常,它們將定位到target / generate-sources / xjc / uk.org.siri.siri,但我能夠將它們發送到src / main / java / pt.thales.communication / attracktive.communication / pojo。 問題在於它們與軟件包名稱uk.org.siri.siri一起使用,從而產生了沖突。 我希望在代碼中更新程序包名稱,但這取決於.xsd中的內容

<xs:schema xmlns:tns="http://www.siri.org.uk/siri" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.siri.org.uk/siri" xmlns:xs="http://www.w3.org/2001/XMLSchema">

如何在pom.xml中進行更改?

有一種方法可以在pom.xml配置目標程序包名稱,但我不建議這樣做。 因為它為所有配置一個目標程序包-當您遵循“ 1:1名稱空間:程序包”邏輯時,JAXB會更好地工作。

我建議的方式是使用綁定文件。

如果您使用的是 ,則只需在src/main/resources創建一個名為bindings.xjb (或帶有*.xjb )即可。 內容如下:

<jaxb:bindings version="1.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
        <jaxb:schemaBindings>
            <jaxb:package name="com.acme.foo"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>

</jaxb:bindings>

schemaLocation必須指向架構的架構文件之一。 jaxb:package/@name定義目標軟件包名稱。

如果您有多個名稱空間,請創建一個單獨的jaxb:bindings (每個名稱空間使用jaxb:schemaBindings/jaxb:package 。將schemaLocation指向使用特定名稱空間的某個模式文件。

我不建議將多個名稱空間映射到一個包上,這通常會導致問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM