1

In the maven-jaxb2-plugin, it is possible to support multiple generated packages in the same maven project since configuration is a child of execution in the plugin's configuration schema, but this does not seem to be the case for scalaxb-maven-plugin; see the comparison below:

<plugins>
  <plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.12.3</version>
    <executions>
      <execution>
        <id>simulation-params</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <extension></extension>
          <args>
            <arg>-Xdefault-value</arg>
          </args>
          <plugins>
            <plugin>
              <groupId>org.jvnet.jaxb2_commons</groupId>
              <artifactId>jaxb2-default-value</artifactId>
              <version>1.1</version>
            </plugin>
          </plugins>
          <generatePackage>edu.cornell.ansci.dairy.econ.simulation.config.params</generatePackage>
          <schemaDirectory>${basedir}/src/main/resources/params</schemaDirectory>
          <generateDirectory>${basedir}/target/generated-sources/xjc1</generateDirectory>
          <forceRegenerate>true</forceRegenerate>
        </configuration>
      </execution>
      <execution>
        <id>simulation-config</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <extension></extension>
          <args>
            <arg>-Xdefault-value</arg>
          </args>
          <plugins>
            <plugin>
              <groupId>org.jvnet.jaxb2_commons</groupId>
              <artifactId>jaxb2-default-value</artifactId>
              <version>1.1</version>
            </plugin>
          </plugins>
          <generatePackage>edu.cornell.ansci.dairy.econ.simulation.config</generatePackage>
          <schemaDirectory>${basedir}/src/main/resources/config</schemaDirectory>
          <generateDirectory>${basedir}/target/generated-sources/xjc2</generateDirectory>
          <forceRegenerate>true</forceRegenerate>
        </configuration>
      </execution>
    </executions>
  </plugin>
  <plugin>
    <groupId>org.scalaxb</groupId>
    <artifactId>scalaxb-maven-plugin</artifactId>
    <configuration>
      <packageName>edu.cornell.ansci.dairy.econ.simulation.config</packageName>
      <xsdDirectory>${basedir}/src/main/resources/config</xsdDirectory>
      <outputDirectory>${basedir}/target/generated-sources/xjc2</outputDirectory>
    </configuration>
    <executions>
      <execution>
        <id>scalaxb</id>
        <goals>
          <goal>generate</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>
bbarker
  • 11,636
  • 9
  • 38
  • 62
  • 1
    2 cents from me: the xml structure `plugin/executions/execution/configuration` is Maven's, not plugin's (i.e. I think the text "but this does not seem to be the case for scalaxb-maven-plugin" is just plain wrong). – Andrei Aug 12 '17 at 19:37
  • @Andrei - aha, you are right, this seems to be working so far – bbarker Aug 12 '17 at 19:50

1 Answers1

0

For completeness ... based on @Andrei's comment, here is the equivalent scalaxb configuration for what I had in jaxb2:

  <plugin>
    <groupId>org.scalaxb</groupId>
    <artifactId>scalaxb-maven-plugin</artifactId>
    <executions>
      <execution>
        <id>simulation-params</id>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <packageName>edu.cornell.ansci.dairy.econ.simulation.config.params</packageName>
          <xsdDirectory>${basedir}/src/main/resources/params</xsdDirectory>
          <outputDirectory>${basedir}/target/generated-sources/xjc1</outputDirectory>
        </configuration>
      </execution>
      <execution>
        <id>simulation-config</id>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <packageName>edu.cornell.ansci.dairy.econ.simulation.config</packageName>
          <xsdDirectory>${basedir}/src/main/resources/config</xsdDirectory>
          <outputDirectory>${basedir}/target/generated-sources/xjc2</outputDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>
bbarker
  • 11,636
  • 9
  • 38
  • 62