没有调用jaxb2目标

Kir*_*lin 4 lifecycle jaxb maven-3 maven-jaxb2-plugin

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

问题是没有从mvn install或mvn compile或mv generate-sources调用jaxb2.如果我调用mvn jaxb2:generate(作为目标的名称),则可以创建类.我在这里查看了一些问题并使用了提供的答案,但我仍然遗漏了一些东西.谢谢.

lex*_*ore 6

免责声明:我是该作者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>
Run Code Online (Sandbox Code Playgroud)

您的配置很少有其他评论:

  • 0.8.0是一个非常古老的版本,0.12.3是实际的版本.
  • 随着现代Maven的您不再需要配置maven-compiler-pluginsource/ target版本1.6.
  • 不要用forceRegenerate.
  • 考虑使用绑定文件而不是generatePackage.
  • 当前版本jaxb2-basics是0.9.2.