[英]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會更好地工作。
我建議的方式是使用綁定文件。
如果您使用的是maven-jaxb2-plugin ,則只需在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.