1

以下 Maven 设置:

src/main/resources/BaseTypes.xsd
src/test/resources/MyTypeUsingBaseTypes.xsd

现在我想将 BaseTypes 生成到目标/类中,而将 MyTypeUsingBaseTypes 生成到目标/测试类中。

问题是,BaseTypes 也被生成(=复制)到目标/测试类中。

我正在使用 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3,有两个执行:

<plugin>
  <groupId>org.jvnet.jaxb2.maven2</groupId>
     <artifactId>maven-jaxb2-plugin</artifactId>
     <version>0.12.3</version>
     <executions>
    <execution>
      <id>gen-schemas</id>
      <goals>
        <goal>generate</goal>
      </goals>
    </execution>

    <execution>
      <id>gen-test-schemas</id>
      <phase>generate-test-sources</phase>
      <goals>
        <goal>generate</goal>
      </goals>
      <configuration>
        <generateDirectory>target/generated-test-sources/xjc</generateDirectory>
        <addTestCompileSourceRoot>true</addTestCompileSourceRoot>
        <schemaDirectory>src/test/resources</schemaDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>
4

1 回答 1

3

也许这样的事情可以完成这项工作(检查路径):

尝试添加<configuration>以下选项:

<schemaLanguage>:它告诉文件的类型是什么(wsdl、wadl、ear 等)

<schemaIncludes>:这使您有机会选择特定文件

<generatePackage>: 将生成的 *.java 文件打包到选定的生成目录中

这样你就可以写下尽可能多的不同模式的执行。

<executions>
    <execution>
        <id>xjc-schema2</id>
        <goals>
            <goal>generate</goal>
        </goals>
        <configuration>
            <schemaLanguage>wsdl</schemaLanguage>
            <schemaDirectory>src/test/resources</schemaDirectory>
            <schemaIncludes>
                <include>MyTypeUsingBaseTypes.xsd</include>
            </schemaIncludes>
            <generatePackage>com.name.of.package.MyTypeUsingBaseTypes</generatePackage>

            <generateDirectory>target/generated-test-sources/xjc</generateDirectory>
            <clearOutputDir>false</clearOutputDir>
        </configuration>
    </execution>
    <execution>
        <id>xjc-schema2v2</id>
        <goals>
            <goal>generate</goal>
        </goals>
        <configuration>
            <schemaLanguage>wsdl</schemaLanguage>
            <schemaDirectory>src/main/resources</schemaDirectory>
            <schemaIncludes>
                <include>BaseTypes.xsd</include>
            </schemaIncludes>
            <generatePackage>com.name.of.package.BaseTypes</generatePackage>

            <generateDirectory>target/generated-sources/xjc</generateDirectory>
            <clearOutputDir>false</clearOutputDir>
        </configuration>
    </execution>
</executions>
于 2016-09-01T10:39:04.543 回答