首页 > 解决方案 > 插件 1 删除插件 2 类 (Maven)

问题描述

我正在尝试生成 JAVA 类 WSDL 和 XSD,但是当我运行 mvn clean install 时,我看到这些类是从日志中的第一个插件生成的,但我的第二个插件只是删除了它们。我的构建部分是这样写的:

<build>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <id>generate-wsdl-to-java</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>wsimport</goal>
            </goals>
            <configuration>
                .
                .
                .
                .
                .
            </configuration>
            <inherited>true</inherited>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>2.4</version>
    <inherited>true</inherited>
    <executions>
        <execution>
            <id>generate-xsd-to-java</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>xjc</goal>
            </goals>
            <configuration>
                .
                .
                .
                .
            </configuration>
            <inherited>true</inherited>
        </execution>
    </executions>
</plugin>

当我反转插件时,类生成良好,没有任何内容被覆盖/删除。如果我想继续前进,我可以保持这种状态,但我想知道在这种情况下我做错了什么。我对 Maven 是半新的,所以仍然了解所有的来龙去脉。我是否必须将它们包裹在“pluginManagement”或类似的东西上?

标签: javamavenmaven-3maven-plugin

解决方案


这实际上取决于您如何配置这两个插件的输出文件夹。

默认值是${project.build.directory}/generated-sources/wsimport${project.build.directory}/generated-sources/jaxb所以我不希望它们不会被覆盖。

无论如何:如果两个插件都打算在同一阶段运行,那么它们在 POM 中的顺序定义了它们的执行顺序——甚至pluginManagement不会改变这一点。所以这没有错


推荐阅读