Maven 2 使用jaxb和maven在不同的包中生成类

Maven 2 使用jaxb和maven在不同的包中生成类,maven-2,pom.xml,jaxb2,maven-jaxb2-plugin,Maven 2,Pom.xml,Jaxb2,Maven Jaxb2 Plugin,这个问题和我的情况很相似,但我的情况有点不同 我有一个包含许多xsd和wsdl的目录。其中一些需要生成到不同的包中 我已将我的pom.xml配置如下: <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <versi

这个问题和我的情况很相似,但我的情况有点不同

我有一个包含许多xsd和wsdl的目录。其中一些需要生成到不同的包中

我已将我的pom.xml配置如下:

    <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.7.1</version>
            <executions>
                <execution>
                    <id>xsd-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <generateDirectory>${project.build.directory}/generated-sources/xsdClasses</generateDirectory>
                        <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.databinding.jaxb</generatePackage>
                        <schemaDirectory>resources/webservices</schemaDirectory>
                        <includeSchemas>
                            <!-- we have 3 top level xsd's -->
                            <include>Topology-Types.xsd</include>
                            <include>Reservation-Types.xsd</include>
                            <include>Notification-Types.xsd</include>

                        </includeSchemas>
                        <extension>true</extension>
                        <args>
                            <arg>-Xcopyable</arg> <!-- to make them implement java.lang.Cloneable -->
                        </args>
                        <plugins>
                            <!-- necesary for -Xcopyable to work -->
                            <plugin>
                                <groupId>org.jvnet.jaxb2_commons</groupId>
                                <artifactId>jaxb2-basics</artifactId>
                                <version>0.5.3</version>
                            </plugin>
                        </plugins>
                    </configuration>
                </execution>

                <execution>
                    <id>wsdl-reservation-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <generateDirectory>${project.build.directory}/generated-sources/reservationClasses</generateDirectory>
                        <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.reservation</generatePackage>
                        <schemaDirectory>resources/webservices/</schemaDirectory>
                        <includeSchemas>
                            <include>Reservation-WS.wsdl</include>
                        </includeSchemas>
                        <extension>true</extension>
                    </configuration>
                </execution>

                <execution>
                    <id>wsdl-notification-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <generateDirectory>${project.build.directory}/generated-sources/notificationClasses</generateDirectory>
                        <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.notification</generatePackage>
                        <schemaDirectory>resources/webservices</schemaDirectory>
                        <includeSchemas>
                            <include>Notification-WS.wsdl</include>
                        </includeSchemas>
                        <extension>true</extension>
                    </configuration>
                </execution>

                <execution>
                    <id>wsdl-topology-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <generateDirectory>${project.build.directory}/generated-sources/topologyClasses</generateDirectory>
                        <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.topology</generatePackage>
                        <schemaDirectory>resources/webservices</schemaDirectory>
                        <includeSchemas>
                            <include>Topology-WS.wsdl</include>
                        </includeSchemas>
                        <extension>true</extension>
                    </configuration>
                </execution>

            </executions>

        </plugin>

org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.7.1
xsd生成
生成
${project.build.directory}/generated sources/xsdClasses
eu.ist_.harmony.common.serviceinterface.databinding.jaxb
资源/网络服务
Topology-Types.xsd
Reservation-Types.xsd
Notification-Types.xsd
真的
-可复制
org.jvnet.jaxb2_commons
jaxb2基础知识
0.5.3
wsdl保留生成
生成
${project.build.directory}/generated sources/reservationClasses
eu.ist_.harmony.common.serviceinterface.reservation
资源/网络服务/
Reservation-WS.wsdl
真的
wsdl通知生成
生成
${project.build.directory}/generated sources/notificationClasses
eu.ist_.harmony.common.serviceinterface.notification
资源/网络服务
通知-WS.wsdl
真的
wsdl拓扑生成
生成
${project.build.directory}/generated sources/topologyclass
eu.ist_.harmony.common.serviceinterface.topology
资源/网络服务
拓扑结构-WS.wsdl
真的
当我运行mvn compile生成类时,问题是每个生成的包都包含每个类,而不仅仅是我用includeSchema包含的那个类

如何配置插件,使每个包只包含includeSchemas中列出的类


为什么我的情况与另一个问题不同?我不能将xsd/wsdl文件放在不同的目录中,因为它们依赖于额外的文件,我认为复制这些文件不是一个好主意。我相信您的问题是
应该是
(至少对于版本0.8.0)

谢谢。我把文件弄糊涂了。我没有意识到有许多名称非常相似的jaxb插件