我正在使用maven-jaxb2-plugin从xsd生成一些类。
在子pom中定义如下:
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>
<executions>
<execution>
<id>jaxb2-generate</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<forceRegenerate>true</forceRegenerate>
<!-- Generate classes from XSD (XML Schema) using JAXB -->
<schemaDirectory>src/main/resources/com/reportcenter/settings/</schemaDirectory>
<generatePackage>com.reportcenter.settings</generatePackage>
<schemaIncludes>
<include>**/*.xsd</include>
</schemaIncludes>
<strict>false</strict>
<extension>true</extension>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.2</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.2</version>
</plugin>
</plugins>
<args>
<arg>-Xannotate</arg>
<arg>-XtoString</arg>
<arg>-Xcopyable</arg>
</args>
</configuration>
</plugin>
</plugins>
</pluginManagement>
问题是没有从mvn install或mvn compile或mv generate-sources调用jaxb2。
如果我调用mvn jaxb2:generate(作为目标的名称),则类创建成功。
我在这里查看了一些问题并使用了提供的答案,但是我仍然缺少一些东西。
谢谢你。
最佳答案
免责声明:我是 maven-jaxb2-plugin
的作者。
似乎您只在pluginManagement
中配置了插件,但实际上并没有在build
部分中使用它。
它应该是这样的:
<project ...>
...
<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>
...
</plugins>
</build>
...
</project>
关于您的配置的其他评论:
0.8.0
是一个很旧的版本,0.12.3
是实际的版本。 maven-compiler-plugin
/source
版本target
配置1.6
。 forceRegenerate
。 generatePackage
。 jaxb2-basics
的当前版本是0.9.2。 关于jaxb2目标未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27767384/