同时生成JAXB类使用Maven包越来越删除,并产生行家包名称不正确

我试着用JAXB2-Maven的插件从XSD生成JAXB类。

我能得到包中的JAXB类,但我的其他的包越来越删除。 究竟是什么原因呢? 如何在走到这一步? 请您给点建议。

下面是我试过

<bulid> <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>1.5</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>xjc</goal> </goals> </execution> </executions> <configuration> <schemaDirectory>src/main/xsd</schemaDirectory> <outputDirectory>src/main/java</outputDirectory> </configuration> </plugin> </plugins> </pluginManagement> </bulid>

和XSD如下所示:

<?xml version="1.0" encoding="UTF-8"?><xsd:schema targetNamespace="com.test.jaxb.model" xmlns:ns="com.test.jaxb.model" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="TestResults"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="testSuites" type="Q1:TestSuiteRun"/> </xsd:sequence> <xsd:attribute name="testProject" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="TestCaseRun"> <xsd:complexContent> <xsd:extension base="Q1:TestRun"> <xsd:sequence> <xsd:element name="result" type="Q1:Severity"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="variations" type="Q1:VariationRun"> </xsd:element> </xsd:sequence> <xsd:attribute name="variationCount" type="xsd:int"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>

我给的targetNamespace =“com.test.jaxb.model”,但后一代,我只能看到下包名JAXB类:model.jaxb.test.com ..

为什么这么包的名称是歌厅逆转,为什么我的包等得到删除?

--------------解决方案-------------

你的主要问题是,你正在使用src/main/java<outputDirectory> 。 有与该两个主要问题。

  1. 生成的来源将是在目录结构中,正常情况下是版本控制之下。 你会用生成的来源呢? 他们应该在检查 ? 您的VCS将信号的新文件已经被发现,仍然没有增加。
  2. 当你调用生成的源不会被删除mvn clean

您应该删除<outputDirectory>src/main/java</outputDirectory>彻底让Maven和插件到自己的工作。

如果您删除这些行你将不得不生成到源target/generated-sources ,他们在编译compile期我以为是你想要的。



至于我相信你应该改变扭转包名targetNamespace这样:

<xsd:schema targetNamespace="http://www.test.com/jaxb/model"
...

问题解决了 :

<bulid>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>src/main/xsd</schemaDirectory>
<outputDirectory>src/main/java</outputDirectory>
<packageName>com.test.jaxb.model</packageName>
<clearOutputDir>false</clearOutputDir>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</bulid>

我删除目标名称从XSD

MVN JAXB2:XJC的工作!

分类:java的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.234 (s). 10 q(s)