2013-06-24 124 views
0

我在与a multi-module project一个问题,其中所述模块中的一个是基于注释的行家-插件依赖性:https://github.com/fommil/netlib-java/Maven插件如在多模块项目

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

它也可以从清洁确定,如果我做

mvn -pl generator compile 
mvn compile 

我想构建一气呵成成功,这样我可以做所有模块的构建和发布。

+0

随意看看源(上面链接):-)据我所知,该插件被正确包装,但我不知道你是什么意思“是NETLIB设置为POM相同的属性“ – fommil

+0

即使在手动安装jlapack后,我也无法构建它(我调整了maven-compiler-plugin设置来添加接口mojo和您的AbstractNetlibGenerator,因此它不会使用jlapack javadoc,因此它会生成,但一些测试会保留失败,但如果我跳过它似乎工作 - 所有这一切调整后),快速'傻'问题..因为你在netlib上使用生成器作为构建插件,你尝试先构建生成器插件,然后整个项目? –

+0

我没有尝试,但我希望它会打破sonatype发布,不是吗?对不起,它没有工作......我处于开发的中间,所以可能处于不一致的状态。 – fommil

回答

2

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

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

Stephen Connolly在maven-users列表或其他地方写过这篇文章,但目前我找不到它,没有时间搜索。

心连心, - 马丁

+0

这真是太遗憾了,因为我的项目显然是具有相同反应器的插件的有效用例。 – fommil

0

(我把这个作为一个答案,因为它不适合在评论区)

嗯,我从Github上下载的11fe0f5修订,并试图MVN清洁父/根文件夹中安装看看会发生什么,我得到这个错误:

 
[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> 
     <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干净安装部分输出:

 
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的命令来获得你的问题的错误?你有没有尝试删除整个存储库? (也许你已经在那里安装了一个混乱的发生器版本)

+0

这很奇怪,我不需要执行者的目标。我会在今晚晚些时候尝试,看看如果加入它,一切都会一次性完成。 – fommil

+0

你的意思是描述符的目标? –

+0

好的,这很奇怪。现在我添加了'execution'来运行'descriptor'目标,我得到了'[ERROR]在第一遍中找不到目标'interface',并且它在第二遍中运行。所以,仍然没有解决,但这可能是一个暗示。 – fommil

相关问题