在多模块方案中,Maven插件依赖项未添加到类路径中

时间:2011-07-14 12:06:47

标签: java maven maven-plugin

我有一个具有以下结构的多模块maven项目:

    • 子模块1
    • 子模块2
    • 子单词数

现在我创建了一个应该生成源的maven插件。我已将插件添加到子模块2的pom中。此插件配置依赖于“子模块1”。因此,如果我现在在“sub-module2”上调用“mvn clean compile”,插件将通过“sub-module1”的信息生成源代码。但是,如果我现在在Root项目上调用“mvn clean compile”,则不会生成源。插件被执行,但它接口就像没有将插件依赖到子模块1添加到类路径中:/ ...有谁知道问题出在哪里?这是一个maven bug吗?

编辑:

这是我自己编写的一个插件...它用于通过子模块1的一些xml文件生成flex源文件。该插件在“生成源”阶段运行。这是插件在pom中配置的方式:

<plugin>
    <groupId>xxx</groupId>
    <artifactId>code-generator-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- Generate by default only classes for our metadata -->
        <catalogs>
            <catalog>/xxx/.*</catalog>
        </catalogs>
        <!-- Generated files will be placed directly in the source folder -->
        <outputFolder>src/main/flex</outputFolder>
    </configuration>
    <dependencies>
        <!-- Don't forgot this dependency to the API project -->
        <dependency>
            <groupId>xxx</groupId>
            <artifactId>api</artifactId>
            <!-- We have to put version here because dependencyManagement -->
            <!-- doesn't work for plugin dependencies -->
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</plugin>

这是在sub-module2的pom中定义的插件...对artifactId“api”的依赖是我在帖子上描述的“sub-module1”

1 个答案:

答案 0 :(得分:0)

在评论中回答:

  

哦,天啊......我浪费了3个小时才发现问题......一切都好   工作良好。问题是工作目录/和相关性   路径。如果我在子模块上调用mvn clean编译,那一切都是   在正确的地方生成...如果我在根模块上调用它   生成int&#34; Root / src / main / flex的源...&#34;代替   &#34;根/子模块2 / SRC /主/柔性....&#34; ...抱歉浪费你的时间   :/ ...我必须添加maven基目录来放置文件   正确的地方...... - Michael Jul 14&#39; 11 at 13:44