当前位置: 首页 > 知识库问答 >
问题:

无法生成jaxb。目标阶段的xsd到java类

邴俊民
2023-03-14

Java-jaxb-maven插件

我有基于maven的Web应用程序,在pom我有以下插件,应该生成jaxb. xsd到java类。

当我执行clean、compile时,包xsd类不会生成。当我执行mvn jaxb2:generate manually时,它会在generate source文件夹中生成xsd类,但不会在war中打包。

我如何才能让它在不手动执行“mvn jaxb2:generate”的情况下生成xsd类,并使其成为战争的一部分?谢谢,我提前通知你。

<plugin>
          <groupId>org.jvnet.jaxb2.maven2</groupId>
          <artifactId>maven-jaxb2-plugin</artifactId>
          <version>0.8.3</version>
          <executions>
            <execution>
              <phase>generate-sources</phase>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <schemaDirectory>src/main/wsdl</schemaDirectory>
          </configuration>
        </plugin>

共有2个答案

左华灿
2023-03-14

我稍微更新了我的插件,如下所示

<plugin>
      <groupId>org.jvnet.jaxb2.maven2</groupId>
      <artifactId>maven-jaxb2-plugin</artifactId>
      <version>0.8.3</version>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <generatePackage>com.equilibriums.samplespringws</generatePackage>
        <schemaDirectory>src/main/wsdl</schemaDirectory>
      </configuration>
    </plugin>

下面是maven命令

mvn jaxb2:generate compile package

而且效果很好。

侯涵煦
2023-03-14

当您运行mvn clean compile包时,它不会生成XSD类,因为生成源代码不是打包目标的一部分。WAR打包的默认绑定是process resources compile process test resources test compile
test package install deploy

你可以把它包装在一个配置文件上,并用这个配置文件运行mvn构建。使用配置文件的另一个原因是,你只能在需要生成java类的时候使用这个配置文件,其他时候你可以运行常规构建。

格式是

<profiles>
   <profile>
     <id>generateFromSchemas</id>
        <plugin>
           ......
        </plugin>
   </profile>
 <profiles>

MVN-P生成模式

 类似资料:
  • myType也被定义为complexType。然后得到生成的类MyResponse.java和Reference.java。我可以通过以下方式分配“引用”的值: 而且奏效了。 现在我只是删除了maxOccurs=“unbounded”,它不再起作用了。响应不再是List类型,而是JaxBelement类型。我试着用: 谁能告诉我,当它不是一个列表时,什么是正确的做法?

  • 我有一个xml,我已经生成了xsd文件。 XML文件 XSD文件 但是当我在eclipse中生成JAXB类时。 NetCharge 类是使用变量字符串“货币”创建的,但没有值变量。 所有其他使用值和属性的类都会发生这种情况。 请帮帮忙。

  • 我正在尝试运行一些Selenium测试,但将jetty的启动附加到maven的预集成测试阶段是行不通的。因此,我试图调查这个问题,似乎总体而言,Maven没有在我指定的阶段执行我的目标。 我找到了这个例子并复制了它。我创建了一个插件,当我显式调用它时,它运行良好。但是当我尝试将其附加到验证阶段并运行mvn验证时,我没有看到“你好!!!”输出它只是向我展示了构建成功,而没有调用howdy world

  • 问题内容: jaxb插件有很大的问题。我有一个项目A,其中有src / main / resources / xsd / common.xsd文件。在这个项目中,我使用cxf-xjc-plugin生成Java类。我在src / main / resources / META- INF下也有我的Episod文件,名为sun-jaxb.episode 接下来,我有项目B,该项目对项目A具有Maven依

  • 我有我的xml模式定义如下 我使用maven-jaxb2-plugin根据这个xsd生成Java类。 生成代码后,我发现所有元素都有@xmlement注释(required=true)。为什么?我有许多minOccurs=“0”元素。为什么元素上总是添加required=true。

  • 几个小时以来,我一直在努力让MapStruct为JAXB生成的类生成有效的映射器。这些类的特殊性在于,它们既没有集合的setter,也没有集合的adder。例如: 类avove有一个getter和一个属性设置器(本例中为firstName),但对于集合(此处列出),它只有一个getter。因此,消费者有责任通过getAddressTypes(add(new AddressType(...))进行访