9

maven-jab2-pluginを使用してXSDスキーマからPOJOを生成しています。私が生成したクラスには、コレクションであるフィールドのセッターがありません。コレクションのセッターを生成するにはどうすればよいですか?

セッターがデフォルトで有効にならない理由を誰かが説明できますか?

4

2 に答える 2

10

ここに記載されているように、JAXB2-Basicsに含まれているSettersプラグインを使用します

私はそれらの使用例をコピーして貼り付けました(そしてセッターを具体的に表示するように変更しました):

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.7.0</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <args>
            <arg>-Xsetters</arg>
        </args>
        <plugins>
            <plugin>
                <groupId>org.jvnet.jaxb2_commons</groupId>
                <artifactId>jaxb2-basics</artifactId>
                <version><!-- Current version --></version>
            </plugin>
        </plugins>
    </configuration>
</plugin>

そして、依存関係にJAXB2BasicsRuntimeパッケージを含めます。

<dependency>
    <groupId>org.jvnet.jaxb2_commons</groupId>
    <artifactId>jaxb2-basics-runtime</artifactId>
    <version><!-- Current version --></version>
</dependency>
于 2012-11-11T20:28:18.480 に答える
1

コレクション用のセッターを生成するために、私は自分に合った解決策しか見つけませんでした。org.andromda.thirdparty.jaxb2_commonsに依存関係を追加する必要があります。ただし、このソリューションはjaxb2-maven-pluginバージョン2.5.0で機能し、バージョン2.3.1では機能しません。次に例を示します。

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>2.5.0</version>
    <dependencies>
      <dependency>
         <groupId>org.andromda.thirdparty.jaxb2_commons</groupId>
         <artifactId>collection-setter-injector</artifactId>
         <version>1.0</version>
      </dependency>
   </dependencies>
   <executions>
      <execution>
             ......
       </execution>
    </executions>
    <configuration>
       <sources>
             ......
       </sources>
       <arguments>-Xcollection-setter-injector</arguments>
       <clearOutputDir>false</clearOutputDir>
       <extension>true</extension>
    </configuration>
</plugin>
于 2021-05-07T16:17:23.097 に答える