所以不久前我开始使用 maven(使用 eclipse 和 Sonatype 的本地实现),在经历了最初的痛苦之后,我虽然一切正常......显然不是!
我有我的主项目 POM 和我所有的子 POM(我使用的是“平面”层次结构,所以所有子项目都与父 POM 在同一个文件夹中)。这似乎工作正常。
在我开始使用 Maven 之前,所有启动和“发布”和测试的子项目。我去 maven 解决我的“依赖”问题......或者在这种情况下让它们变得更复杂。
大多数“Maven”的东西似乎都可以正常工作,但是我无法解决已发布到本地 ms/repository 中的“子项目”的依赖关系
每天我启动 eclipse 并遇到同样的问题,我的所有个人库以及我用于它们的所有库(例如 Log4j、DDlUtils 等)都“无法解析导入”。
我认为 maven 的全部意义在于我可以为库添加导入声明,将“groupID”和其他内容添加到子 POM(或父 POM)中。然后在我对父级运行 mvn install 时自动下载所有 jar。
但是,每天我发现我必须通过 eclipse 工作区重新插入库(内部和外部)的构建路径,并将它们指向我下载的库的位置,因为 maven 似乎无法在任何地方找到它们。
特别是通过运行 Junit 测试,我可以从工作区运行它们(使用 run as junit)并且它们都通过了。但是,如果我尝试使用 mvn test 运行它们,我会收到一条消息说 java.lang;NoClassDefFoundError: org/junit/Assert (这与在运行 mvn 测试的 eclipse 中或从 CLI 中相同)在输出中出现错误消息未能执行目标 org.apache.maven.plugins:maven.surfire-plugin:2.10:test POM 和 jar 在我的 M2_REPO 中,我在 sonatype 中搜索时可以找到它,为什么 maven 找不到是它自己系统的一部分,存在于它的 repo 中。
但是当我通过 eclipse 运行并将它指向一个独立下载的junit库时,这显然工作得很好。
我不知道您可能需要什么额外信息,而且我显然在 m2e 插件、我的 maven 安装或 sonatype 中遗漏了一些东西。
请帮助我开始松开我的头发!并且可能很快就会被迫回到蚂蚁/常春藤解决方案(但不想学习“另一种工具”(在这种情况下是常春藤)。
提前致谢
大卫。
附言。我在 Windows XP 平台上
编辑...我可以让 maven 构建和发布 jar 和 pom,即使它认为它没有通过测试(这不是我手动做的,它们通过就好了)。
如果我查看父 POM 的“有效 POM”选项卡,上面所述的插件不在那里。我想这意味着它是一个 Maven 配置设置,但是我在哪里添加它,为什么当我运行我的第一组 Maven 测试时它不是自动的?
编辑 2....
我刚刚在 apache 插件评论页面 (http://maven.apache.org/plugins/maven-surefire-plugin/plugin-info.html) 上找到了这个,所以我在 CLI 上运行了代码 mvn surefire:help - Ddetail=true -Dgoal=test 下载了很多东西,现在测试运行了,但是在 maven 中失败了?(请记住,当使用 'run as junit test 从 eclipse 运行时它们会通过)......所以这几乎是一个解决方案......