【发布时间】:2018-07-23 09:56:41
【问题描述】:
我的 pom.xml 文件包含三个不同的插件:第一个从 .xsd 生成 .java,第二个从文件夹更改 .java,第三个删除原始 .java
...
<build>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/java/pt/thales/attracktive/communication/pojo</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target/generated-sources/xjc/uk/org/siri/siri</directory>
<filtering>true</filtering>
<includes>
<include>*.java</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/target/generated-sources/xjc/uk/org/siri/siri</directory>
<includes>
<include>**/*.java</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
</project>
问题:
- 我可以有一个删除插件和一个更改文件夹插件吗?根据我的测试,我不能,因为删除插件“更强”并且不要让更改文件夹插件起作用
- 当我更改文件夹时,包名称也会更改,是否可以更新它?
- 为什么这两个 .xsd 会出现此错误
订阅请求.xsd:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.siri.org.uk/siri" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.siri.org.uk/siri" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="RequestorRef" type="xs:string" />
<xs:element name="MessageIdentifier" type="xs:string" />
<xs:element name="ConsumerAddress" type="xs:string" />
<xs:element name="SubscriberRef" type="xs:string" />
<xs:element name="SubscriptionIdentifier" type="xs:unsignedByte" />
<xs:element name="InitialTerminationTime" type="xs:dateTime" />
</xs:schema>
和 TerminateSubscriptionRequest.xsd:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.siri.org.uk/siri" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.siri.org.uk/siri" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="RequestTimestamp" type="xs:dateTime" />
<xs:element name="RequestorRef" type="xs:string" />
<xs:element name="SubscriberRef" type="xs:string" />
<xs:element name="SubscriptionRef" type="xs:unsignedByte" />
</xs:schema>~
结果:
[错误] 解析架构时出错。位置 [ 文件:/C:/Users/rapha/Desktop/Thales/attracktive-master/thales.attracktive.communication/attracktive.communication/src/main/resources/TerminateSubscriptionRequest.xsd{4,54}]。 org.xml.sax.SAXParseException;系统标识: 文件:/C:/Users/rapha/Desktop/Thales/attracktive-master/thales.attracktive.communication/attracktive.communication/src/main/resources/TerminateSubscriptionRequest.xsd; 行号:4;列号:54; 'RequestorRef' 已定义
我尝试了不同的方法,但没有结果可能我错过了一些东西。 谢谢你的讲座,如果你能帮助我,请
【问题讨论】:
-
你想通过复制和删除生成的java文件来达到什么目的?在我看来,您真正想要的是将文件生成到不同的包中,最好通过配置 jaxb 插件来完成。您得到的错误是因为两个模式文件定义了相同的命名空间并声明了相同的元素,因此出现了重复消息。
-
这正是我想要的!如何选择不同的套餐?以及如何解决我的第三个问题,即重复消息?