maven - 如何在编译时解决maven插件生成的文件之间的依赖关系?

标签 maven maven-plugin maven-antrun-plugin maven-mojo jaxws-maven-plugin

好吧,让我尽量把我的问题讲得不那么困惑。

我有一个带有一些 Maven 插件的标准 Maven 项目 -

1) maven-antrun-plugin
2) Custom maven plugin, say, my-maven-plugin
3) jaxws-maven-plugin

现在是复杂的部分。

第一个插件生成了一些我目前放在“${project.build.directory}/java”中的 .java 文件

第二个插件生成另一组 .java 文件,我将所有这些文件再次放在“${project.build.directory}/java”下。但是,它们位于不同的包结构下。

这两个插件都在“generate-sources”阶段运行。

现在,我的第三个插件 jaxws-maven-plugin 尝试将类文件用于由第一和第二个插件生成的文件,作为生成 WSDL 的 SEI。但是在编译期间 Maven 不会在此时创建类文件,并且插件出错并显示“未找到类”消息。

那么我该如何着手解决这个问题呢?此外,由于我在“生成源”阶段出错,我没有在 target/classes 目录中看到我的项目中任何其他源文件的 .class 文件。

哦,这是另一个转折点。我的一些源文件在代码中导入了这些编译时生成的源文件(你不知道我现在正在寻找这个开发者有多糟糕!!)

我已尽力以最好的方式描述我的问题,所以请随时询问任何其他细节或说明。

最佳答案

jaxws-maven-plugin 之前手动运行 build-helper-maven-pluginmaven-compile-plugin:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            ...
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                </execution>
                ...
            </executions>
        <plugin>
        <plugin>
            ...
            <artifactId>my-maven-plugin</artifactId>
            ...
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                </execution>
                ...
            </executions>
        <plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>some directory</source>
                            ...
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-compile-plugin</artifactId>
            ...
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                </execution>
                <goals>
                    <goal>compile</goal>
                </goals>
            </executions>
        <plugin>
        <plugin>
            <artifactId>jaxws-maven-pluginn</artifactId>
            ...
        <plugin>

    </plugins>
</build>

我还没有测试过,但我认为它应该可以工作。

关于maven - 如何在编译时解决maven插件生成的文件之间的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667899/

相关文章:

maven-2 - Maven-替换Jar中的文件

tomcat - Jenkins 没有通过 maven-antrun 运行 Catalina.bat

maven-antrun-plugin 从一个未知的子目录名称复制文件

maven - 如何在不成为项目依赖项的情况下解析 Maven pom 中 Artifact 的路径?

java - 如何在 Windows 上使用命令行执行具有外部依赖项的 jar 文件?

java - CXF 冲突 Xerces 依赖项

java - Maven 无法执行 objective-c om.jayway.maven.plugins.android. Generation2

maven - 将 Apache Avro 模式拆分为多个文件,同时在 avro-maven-plugin 中有多个目标

java - 在插件中使用maven版本

maven-2 - maven-dependency-plugin:copy 尝试复制类