繁体   English   中英

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

[英]Maven plugin as dependency in multi-module project

我遇到了一个多模块项目的问题,其中一个模块是基于注释的maven-plugin: https//github.com/fommil/netlib-java/

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

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

mvn -pl generator compile
mvn compile

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

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

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

Stephen Connolly在博客文章中写到了这一点: Maven和“Install”Hack

心连心,
- 马丁

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

好吧,我从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部分输出:

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命令/目标来解决问题中的错误? 您是否尝试删除整个存储库? (也许你已经安装了一个混乱的发电机版本)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM