2012-12-23 48 views
0

我刚刚修复了另一个奇怪的错误。在向pom.xml添加spring-core之后,我在使用maven构建项目时遇到了“object scala not found”。在搜索了很长时间的关于这个错误之后,我很高兴尝试用Eclipse构建项目。瞧!据报道,弹簧芯罐被损坏。Maven并未警告损坏的罐子

所以,我的问题是:为什么maven没有报告?它不仅可以测试jar文件,如果他们有效的存档或不,也可以检查哈希总和。我相信它应该检查哈希总和。 我错过了什么吗?

顺便说一句,这不是唯一的情况,不幸的是我不记得其他几个细节。

更新:它看起来像checksumPolicy标记解决这个问题。但由于某种原因,它不起作用。

更新2:这里是再现的错误,我最初描述的测试用例:

cd "<maven_local_repo>\org\springframework\spring-core\3.1.3.RELEASE" 
cp spring-core-3.1.3.RELEASE.jar spring-core-3.1.3.RELEASE.jar.old 
#corrupt file manually 
dd skip=100 if=spring-core-3.1.3.RELEASE.jar.old of=spring-core-3.1.3.RELEASE.jar 
cd "<my_project_dir>" 
mvn clean package 
+0

这是什么意思: “checksumPolicy ...但由于某种原因,它不起作用。” ?你有没有发现它应该失败的情况? – khmarbaise

+0

@khmarbaise,我已经添加了测试用例,请参阅UPDATE 2. – alehro

+0

尝试删除本地m2回购的弹簧核心罐,然后构建应用程序。 – om39a

回答

1

退房的JBoss Tattletale.i相信它有你在找什么:

  1. 确定JAR之间的依赖关系文件
  2. 从类路径中查找缺失的类
  3. 如果一个类位于多个JAR文件中,则为点
  4. 现货,如果同一个JAR文件位于多个位置 以及每条JAR文件需要一个列表,并提供
  5. 验证类的serialVersionUID的
  6. 查找有不同的版本号
  7. 寻找类似的JAR文件没有版本号
  8. JAR文件中找到一个JAR文件中的类
  9. 获取项目的OSGi的状态
  10. 删除黑名单API使用

您可以将它集成到maven版本中,如here所解释的。

+0

好工具!但我不能相信maven不能自己对罐子做基本的验证。 – alehro

+1

Maven是乐高。这取决于你用它来构建什么。 – aviad

0

Maven检查哈希总和。

当您运行maven时,您可以使用命令行选项。
构建失败,如果校验和不匹配:
-C, - 严格-校验
警告如果校验和不匹配:
-c, - LAX-校验

+0

在我的情况(请参阅我的问题更新2)它不:mvn -C clean package。错误保持不变:[错误]错误:scala.tools.nsc.MissingRequirementError:找不到对象scala。 – alehro