首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jaxb2-maven-plugin只执行第一次执行

jaxb2-maven-plugin只执行第一次执行
EN

Stack Overflow用户
提问于 2014-03-24 11:37:05
回答 2查看 9K关注 0票数 12

我试图使用JAXB插件使用jaxb在不同的包中将多个XSD转换为POJO。我将其设置为使用多个执行块,然后执行第一个执行块,然后收到一条消息:模式或绑定文件中没有检测到任何更改

这是我的pom.xml的一个摘录:

代码语言:javascript
复制
...
<build>
    <pluginManagement>
        <plugin> 
            <groupId>org.codehaus.mojo</groupId> 
            <artifactId>jaxb2-maven-plugin</artifactId> 
            <version>1.5</version> 
        </plugin>
    </pluginManagement>
    <plugins>
    <!-- JAXB GENERATOR PLUGIN -->
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxb2-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>                    
        <execution>
            <id>Application0</id>
            <phase>generate-sources</phase>
            <goals>
            <goal>xjc</goal>
            </goals>
            <configuration>
            <schemaDirectory>src/main/webapp/WEB-INF/xsd/version1</schemaDirectory>
            <packageName>za.co.mycee.application.model</packageName>
            <outputDirectory>${basedir}/src/main/java/</outputDirectory>
            <clearOutputDir>false</clearOutputDir>
            <source>1.5</source>
            <target>2.1</target>
            <arguments>-no-header</arguments>
            </configuration>
        </execution>                
        <execution>
            <id>Application1</id>
            <phase>generate-sources</phase>
            <goals>
            <goal>xjc</goal>
            </goals>
            <configuration>
            <schemaDirectory>src/main/webapp/WEB-INF/xsd/version1</schemaDirectory>
            <packageName>za.co.mycee.application.model.version1</packageName>
            <outputDirectory>${basedir}/src/main/java/</outputDirectory>
            <clearOutputDir>false</clearOutputDir>
            <source>1.5</source>
            <target>2.1</target>
            <arguments>-no-header</arguments>
            </configuration>
        </execution>
        <execution>
            <id>Application2</id>
            <phase>generate-sources</phase>
            <goals>
            <goal>xjc</goal>
            </goals>
            <configuration>
            <schemaDirectory>src/main/webapp/WEB-INF/xsd/version2</schemaDirectory>
            <packageName>za.co.mycee.application.model.version2</packageName>
            <outputDirectory>${basedir}/src/main/java/</outputDirectory>
            <clearOutputDir>false</clearOutputDir>
            <source>1.5</source>
            <target>2.1</target>
            <arguments>-no-header</arguments>
            </configuration>
        </execution>        
        </executions>
    </plugin>
    ...
</build>
....

这是我得到的错误消息:

代码语言:javascript
复制
[INFO] --- jaxb2-maven-plugin:1.5:xjc (Application) @ mycee-application ---                                                                                                        
[INFO] Generating source...                                                                                                                                                  
[INFO] parsing a schema...                                                                                                                                                   
[INFO] compiling a schema...                                                                                                                                                 
[INFO] za/co/mycee/application/model/AddressType.java                                                                                                                          
[INFO] ...
[INFO] za/co/mycee/application/model/package-info.java                                                                                                                         
[INFO]
[INFO] --- jaxb2-maven-plugin:1.5:xjc (Application1) @ mycee-application ---
[INFO] No changes detected in schema or binding files - skipping source generation.
[INFO]
[INFO] --- jaxb2-maven-plugin:1.5:xjc (Application2) @ mycee-application ---
[INFO] No changes detected in schema or binding files - skipping source generation.

如果我在周围交换执行块,第一个块总是执行,对于剩下的两个块,我得到相同的消息。

对如何解决这个问题有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-24 12:30:57

通过升级到版本1.6来修正它

代码语言:javascript
复制
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxb2-maven-plugin</artifactId> 
    <version>1.6</version> 
</plugin>

代码语言:javascript
复制
<!-- JAXB GENERATOR PLUGIN -->
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.6</version>
    ....

修正了版本1.6,在版本1.5中,所有执行块都使用相同的staleFile:http://jira.codehaus.org/browse/MJAXB-8

票数 11
EN

Stack Overflow用户

发布于 2022-08-04 09:04:46

我无法使用插件的1.6版本来解决这个问题(DataSource类找不到,即使使用javax-注释依赖关系也不可能解决这个问题,就像一些帖子中所建议的那样)。

但是,我找到了一种使jaxb插件1.5能够执行多个执行的方法:在每个节中定义的每个部分中,定义以下参数:

代码语言:javascript
复制
<execution>
    ....
    <configuration>
        ....
        <staleFile>${project.build.directory}/some directories/staleFile>
    </configuration>
</execution>

当然,对于每次执行,绝对文件路径必须是唯一的。

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

https://stackoverflow.com/questions/22608289

复制
相关文章

相似问题

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