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

时间:2013-12-18 20:37:31

标签: 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

现在这里是复杂的部分。

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

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

这两个插件都在“生成源”阶段运行。

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

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

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

我试图以最佳方式描述我的问题,所以请随时询问任何其他细节或说明。

1 个答案:

答案 0 :(得分:0)

build-helper-maven-plugin之前手动maven-compile-pluginjaxws-maven-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>

我没有测试过它,但我认为它应该可行。