我遇到了一个多模块项目的问题,其中一个模块是基于注释的 maven-plugin:https ://github.com/fommil/netlib-java/
基本上,mvn compile
第一次失败,然后第二次成功mvn compile
。
如果我这样做,它也可以正常工作
mvn -pl generator compile
mvn compile
我希望构建一次成功,以便我可以构建和发布所有模块。
我遇到了一个多模块项目的问题,其中一个模块是基于注释的 maven-plugin:https ://github.com/fommil/netlib-java/
基本上,mvn compile
第一次失败,然后第二次成功mvn compile
。
如果我这样做,它也可以正常工作
mvn -pl generator compile
mvn compile
我希望构建一次成功,以便我可以构建和发布所有模块。
我快速浏览了您的项目,发现“生成器”插件是多模块项目的一部分,并且在该项目中使用(具有相同的版本)。这不是合法用途!您必须从反应堆外部提供所有必需的插件!
这样做的原因是,maven 会尝试填充反应器并事先确定所有必需的插件。然后它开始构建。如果生成器插件是项目的一部分,Maven 无法执行此操作。
Stephen Connolly 在一篇博文中写道:Maven 和“安装”黑客。
hth,
-马丁
(我将其作为答案,因为它不适合评论区)
好吧,我从 Github 下载了 11fe0f5 修订版,并在父/根文件夹上尝试了 mvn clean install 以查看会发生什么,我收到了这个错误:
[信息] 构建失败 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:6.444s [INFO] 完成于:Mon Jun 24 20:00:30 BRT 2013 [INFO] 最终内存:20M/350M [信息] --------------------------------------------- ------------------------- [错误] 在可用目标中的插件 org.netlib:generator:1.0-SNAPSHOT 中找不到目标“接口”-> [帮助 1] [错误] [错误] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。 [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。 [错误] [错误] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [错误] [帮助 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 部分输出:
测试运行:4,失败:0,错误:0,跳过:0 [信息] [信息] --- maven-jar-plugin:2.3.2:jar (default-jar) @ netlib --- [信息] 构建 jar: C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317c b1\netlib\target\netlib-1.0-SNAPSHOT.jar [信息] [信息] --- maven-install-plugin:2.3.1:install (default-install) @ netlib --- [信息] 安装 C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317cb1\ netlib\target\netlib-1.0-SNAPSHOT.jar 到 C:\Users\oltra01\.m2\repository\org\net lib\netlib\1.0-SNAPSHOT\netlib-1.0-SNAPSHOT.jar [信息] 安装 C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317cb1\ netlib\pom.xml 到 C:\Users\oltra01\.m2\repository\org\netlib\netlib\1.0-SNAPSHOT \netlib-1.0-SNAPSHOT.pom [信息] --------------------------------------------- ------------------------- [信息] 反应堆摘要: [信息] [信息] 父母 .................................... 成功 [ 0.478s] [INFO] 生成器....................... 成功 [6.172s] [信息] netlib .................................. 成功 [ 1:05.310s] [信息] --------------------------------------------- ------------------------- [信息] 构建成功 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:1:12.105s [INFO] 完成于:Mon Jun 24 19:55:08 BRT 2013 [INFO] 最终内存:27M/491M [信息] --------------------------------------------- -------------------------
您使用哪些 Maven 命令/目标来获取问题中的错误?您是否尝试过删除整个存储库?(也许你在那里安装了一个混乱的生成器版本)