Maven插件作为多模块项目中的依赖项

时间:2013-06-24 20:30:23

标签: maven maven-plugin

我遇到a multi-module project的问题,其中一个模块是基于注释的maven-plugin:https://github.com/fommil/netlib-java/

基本上,mvn compile第一次失败,然后在我做第二次mvn compile时成功。

如果我这样做,它也可以正常工作

mvn -pl generator compile
mvn compile

我希望构建能够一次成功,这样我就可以构建和发布所有模块。

2 个答案:

答案 0 :(得分:3)

我快速浏览了一下你的项目并发现,“generator”插件是多模块项目的一部分在这个项目中使用它(具有相同的版本)。这不是合法用途!您必须从反应堆外部提供所有必需的插件!

原因是,maven试图填充反应堆并事先确定所有必需的插件。然后它开始构建。如果生成器插件是项目的一部分,Maven无法执行此操作。

Stephen Connolly在博文中写到:Maven and the "Install" Hack

HTH,
- 马丁

答案 1 :(得分:0)

(我将此作为答案,因为它不适合评论区域)

我从Github下载了11fe0f5版本,并在父/根文件夹上尝试了mvn clean install,看看会发生什么,我收到了这个错误:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.444s
[INFO] Finished at: Mon Jun 24 20:00:30 BRT 2013
[INFO] Final Memory: 20M/350M
[INFO] ------------------------------------------------------------------------
[ERROR] Could not find goal 'interface' in plugin org.netlib:generator:1.0-SNAPSHOT among available goals -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoNotFoundException

这使我质疑接口目标是否真的存在于生成器插件中,以及是否正在生成目标描述符。 所以看看生成器模块pom.xml我找不到任何maven-plugin配置来生成插件模块,所以我将你的maven-plugin-plugin配置更改为:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
            </configuration>
            <executions>
                <execution>
                    <id>mojo-descriptor</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>descriptor</goal>
                    </goals>
                </execution>
            </executions>
</plugin>

并且将接口目标添加到生成器插件中,我现在可以从根文件夹安装就好了。

mvn clean install partial output:

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ netlib ---
[INFO] Building jar: C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317c
b1\netlib\target\netlib-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ netlib ---
[INFO] Installing C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317cb1\
netlib\target\netlib-1.0-SNAPSHOT.jar to C:\Users\oltra01\.m2\repository\org\net
lib\netlib\1.0-SNAPSHOT\netlib-1.0-SNAPSHOT.jar
[INFO] Installing C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317cb1\
netlib\pom.xml to C:\Users\oltra01\.m2\repository\org\netlib\netlib\1.0-SNAPSHOT
\netlib-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] parent ............................................ SUCCESS [0.478s]
[INFO] generator ......................................... SUCCESS [6.172s]
[INFO] netlib ............................................ SUCCESS [1:05.310s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:12.105s
[INFO] Finished at: Mon Jun 24 19:55:08 BRT 2013
[INFO] Final Memory: 27M/491M
[INFO] ------------------------------------------------------------------------

您使用哪些maven命令/目标来解决问题中的错误?您是否尝试删除整个存储库? (也许你已经安装了一个混乱的发电机版本)