Maven JAXB2 XJC plugin: M2E plugin execution not covered

前端 未结 3 836
小鲜肉
小鲜肉 2021-02-02 01:32

I am using using the jaxb2 xjc plugin for generating java files from a XSD. Therefore I used to configure my pom.xml as follows:



        
相关标签:
3条回答
  • 2021-02-02 01:40

    It turns out that I did eventually find an answer! Eclipse's integration with Maven has known compatibility issues with numerous Maven plugins.

    When you can successfully run a Maven build from the command-line outside of Eclipse, yet but Eclipse shows "execution not covered" errors in your POM, then try adding this plugin:

    <build>
        ...
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings 
                    only. It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>jaxb2-maven-plugin</artifactId>
                                        <versionRange>[1.3,)</versionRange>
                                        <goals>
                                            <goal>xjc</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    

    As indicated in the above comment, this plugin doesn't do anything outside of Eclipse. It simply tells Eclipse when to execute the JAXB plugin, since Eclipse isn't smart enough to figure that out on its own.

    I found this snippet on another StackOverflow question, and adopted it to the "jaxb2-maven-plugin" plugin rather than the plugin at issue in the the other question.

    0 讨论(0)
  • 2021-02-02 01:44

    You could also switch to the maven-jaxb2-plugin which has support in M2E. Steve Perkins' answer above is generally applicable for those plugins which M2E doesn't support, though.

    0 讨论(0)
  • 2021-02-02 01:54

    I'm not sure if this applies to your environment, but if the app is split into maven modules then the best solution fitting my needs I found so far is to remove all affected modules from eclipse IDE. Whenever I need to regenerate I simply build from command line with mvn install. Eclipse is then using packages from repo and not trying to build on its own, no runOnIncremental fiddle-around needed (which I was using for quite some time), no red modules/lines, builds faster too.

    0 讨论(0)
提交回复
热议问题