2014-10-28 50 views
0

在构建ActiveJDBC(我是该项目的作者)时,它首先生成一个Maven插件:https://github.com/javalite/activejdbc/tree/master/activejdbc-instrumentation 插件安装后,它用于不同的项目模块是一个多模块项目)。 有时生成成功,有时它与此错误消息打破:Maven出现间歇性问题,缺少所需的类

[INFO] JavaLite - Common .................................. SUCCESS [ 4.241 s] 
[INFO] JavaLite - Instrumentation Plugin and JavaAgent .... SUCCESS [ 2.590 s] 
[INFO] JavaLite - ActiveJDBC ORM Framework ................ FAILURE [ 5.526 s] 
[INFO] JavaLite - DB-Migrator Maven Plugin ................ SKIPPED 
[INFO] JavaLite - DB-Migrator Integration Test ............ SKIPPED 
[INFO] JavaLite - Git Info Maven plugin ................... SKIPPED 
[INFO] JavaLite - ActiveJDBC Root ......................... SKIPPED 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 12.572 s 
[INFO] Finished at: 2014-10-27T23:01:22-05:00 
[INFO] Final Memory: 26M/271M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.javalite:activejdbc-instrumentation:1.4.10-SNAPSHOT:instrument (default) on project activejdbc: Execution default of goal org.javalite:activejdbc-instrumentation:1.4.10-SNAPSHOT:instrument failed: A required class was missing while executing org.javalite:activejdbc-instrumentation:1.4.10-SNAPSHOT:instrument: javassist/ClassPath 
[ERROR] ----------------------------------------------------- 
[ERROR] realm = plugin>org.javalite:activejdbc-instrumentation:1.4.10-SNAPSHOT 
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
[ERROR] urls[0] = file:/home/igor/projects/javalite/activejdbc/activejdbc-instrumentation/target/activejdbc-instrumentation-1.4.10-SNAPSHOT.jar 
[ERROR] urls[1] = file:/home/igor/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar 
[ERROR] urls[2] = file:/home/igor/projects/javalite/activejdbc/activejdbc/target/classes/ 
[ERROR] urls[3] = file:/home/igor/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar 
[ERROR] urls[4] = file:/home/igor/projects/javalite/activejdbc/javalite-common/target/javalite-common-1.4.10-SNAPSHOT.jar 
[ERROR] urls[5] = file:/home/igor/projects/javalite/activejdbc/activejdbc/target/test-classes/ 
[ERROR] Number of foreign imports: 1 
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] 
[ERROR] 
[ERROR] -----------------------------------------------------: javassist.ClassPath 
[ERROR] -> [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/PluginContainerException 
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command 
[ERROR] mvn <goals> -rf :activejdbc 

据我所看到的,问题是: A required class was missing while executing org.javalite:activejdbc-instrumentation:1.4.10-SNAPSHOT:instrument: javassist/ClassPath

但是这个类是直接打包成的jar文件插件,请看这里: https://oss.sonatype.org/content/repositories/snapshots/org/javalite/activejdbc/1.4.10-SNAPSHOT/

所以,构建有时工作,但有时会中断..没有任何代码或配置的变化 - 在同一个终端窗口。基本上,我需要建立几次,才能获得成功。请帮助确定并解决问题,

我试过Maven 3.0.4和3.2.3。

感谢

+0

这是否只是做了MVN安装后工作? – ash 2014-10-28 05:12:42

+0

我总是执行'mvn clean install',并且问题是间歇的 – ipolevoy 2014-10-28 23:00:24

+0

如果在故障发生后仅重新运行失败的项目上的内部版本,故障是否仍然存在?如果是这样,那么查看本地maven回购的内容可能会提供见解。如果不是这样,它听起来像是一种竞争条件... – ash 2014-10-30 17:48:20

回答

1

你对在POM Javassist是一个依赖..

<dependency> 
    <groupId>javassist</groupId> 
    <artifactId>javassist</artifactId> 
    <version>3.18.2.GA</version> 
</dependency> 
+0

好吧,整个Javassist类集合直接打包到我的插件中。所有类都可以在那里使用,所以我不包括这个依赖关系。 – ipolevoy 2014-10-28 23:01:34

+0

我不知道为什么maven有时候找不到它,但这似乎是问题所在。作为maven的依赖,它使maven有能力解决这个问题。我从来没有把课程放在包里,因为它似乎绕过了maven的力量。 – CharlieS 2014-10-28 23:22:53

+0

这些类被放入包中,因为这个包被用作JavaAgent,所以它需要是自给自足的。向Maven添加一个依赖关系似乎是多余的,但我会尝试这样做。 – ipolevoy 2014-10-30 03:39:50