首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用jaxb2目标

未调用jaxb2目标
EN

Stack Overflow用户
提问于 2015-01-05 00:00:09
回答 3查看 12K关注 0票数 5

我使用maven-jaxb2-plugin从xsd生成一些类。在子pom中定义如下:

代码语言:javascript
复制
<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>

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-05 00:46:18

免责声明:我是maven-jaxb2-plugin的作者。

看起来你只是在pluginManagement中配置插件,但实际上并没有在你的build部件中使用它。

它应该是这样的:

代码语言:javascript
复制
<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是一个非常旧的版本,1.6.
  • Do not use forceRegenerate.
  • Consider才是真正的版本。使用现代generatePackage.
  • Current的0.12.3
  • 您不再需要使用source/target版本来配置maven-compiler-plugin使用绑定文件而不是Maven版本的jaxb2-basics是0.9.2。
票数 6
EN

Stack Overflow用户

发布于 2015-05-22 13:27:11

我遇到了一个与此插件和Eclipse Maven集成相关的错误。

大多数对答案的搜索都是徒劳的,但通常会导致这个帖子。所以,我将发布这个问题,并在这里为遇到它的任何其他人提供一个解决方法。

在命令行中正确使用maven-jaxb2- plugin :0.12.3插件时-在Eclipse中,源代码生成将失败,并显示以下错误:

目标org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate的默认错误执行失败:执行org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate: com/sun/xml/

/api/ErrorListener时缺少必需的类

添加包含它所查找的类的jar文件的各种尝试只会导致另一个类丢失,导致jar文件地狱和无法解决的不匹配类的兔子洞。

我不知道这里的问题是在Eclipse / M2E集成中出了问题,还是在maven-jaxb2-plugin的依赖堆栈中出现了问题。

但是解决方案是使用JDK而不是JRE启动Eclipse本身(而不是安装到eclipse中的JRE/JDK)。

最简单的方法是将-vm参数添加到eclipse.ini文件中:

代码语言:javascript
复制
-startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
-vm C:\Program Files\Java\jdk1.8.0_31\bin\javaw.exe
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
...snip...
票数 4
EN

Stack Overflow用户

发布于 2017-04-11 20:52:32

升级到版本0.13.2 + Kudos到@lexicore查看下面的评论

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27767384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档