在使用maven编译时,是否有必要在/ src / main / java中使用.java文件?
我尝试将一个项目转换为一个maven …它的.java文件位于/ src / main / java之外的其他位置,当我运行maven install时,所有文件(.hbm,.xml)除了那些.class发生在我的jar子里。
这是pom.xml的构建部分:
${basedir}/src **/*.java maven-compiler-plugin 1.5 1.5 true 1.5 UTF-8
使用上面的代码,我的jar中缺少.class文件…并且控制台上没有显示错误消息,是否需要将它们移动到/ src / main / java包结构?
还有,这种行为可能是什么原因,一些缺少依赖性?
我做了一个改变,将它们移动到src / main / java,我在控制台上得到了一些例外,但如果我“必须”将它们添加到这个“src / main / java”结构中,我仍然感到困惑……
请给我一个关于这个的想法……
谢谢
您可以将源目录配置为与以下资源相同:
${basedir}/src ${basedir}/src **/*.java
它不是绝对必要的 – 它是可配置的 – 但是Maven带有标准化的项目布局 , 强烈建议接受它,就像其他Maven惯例一样(不要与Maven对抗,采用它)。
我知道您正在从Ant迁移到Maven,但是您在IMO上并没有走上正确的道路,让Maven适应您现有的项目结构/工作流程并不是推荐的方法:
- Maven强烈建议使用其约定(过度配置)来缓解事情。 不这样做会使事情变得更复杂并产生无用的配置开销。
- 偏离默认值时,你自己就有点了。
- 不使用默认值可能会导致意外不好,一些(很差)实现的插件可能使用硬编码路径(如
src/main/java
,target/classes
等),并且不喜欢更改默认值。 - 等等等
推荐的方法是将现有结构转换为maven兼容的模块化结构,并采用标准的Maven布局 。
采用Maven标准和惯例将使您的Maven生活更加轻松,从长远来看,您将获得标准化的结构,Maven非常重视。
我认为有足够的人写了类似的建议,所以我不会坚持更多。 但你应该听听这些建议(而不是坚持尝试让Maven适合你现有的结构),特别是因为你是Maven的新手。 从我的角度来看,你不是从Ant迁移到Maven,而是试图将Maven迁移到Ant构建。
也可以看看
- 如何在5分钟内从Ant转换为Maven
- 在五个阶段将Ant项目安全地转换为Maven
看看Super POM 。 这是你获得’大会’的地方。 如果您有不同的项目布局,则可能必须更改项目POM中的某些设置,但这不是前面提到的好建议。
到目前为止,最简单的解决方案(如果可能在您的情况下)是将代码移动到/ src / main / java,因为这是maven所期望的。 这是不可能的,你至少需要告诉maven在哪里找到来源。 从你的POM我看不到你做过的任何地方。
如果你想使用Maven,那么阻力最小的路径就是遵守Maven惯例。 当然你可以有一个不同的源路径,但它肯定更复杂(似乎唯一的方法是将源目录作为编译器参数传递 ),你获得了什么? 我相信移动源目录要容易得多。
- Spring JPA / Hibernate EmptyInterceptor没有注入Entitymanager / Spring bean
- 数据未保存:对象引用未保存的瞬态实例 – 在刷新之前保存瞬态实例
- 使用匿名类创建参数化类型对象
- GWT,Vaadin,SmartGwt,ExtGwt?—来自Swing
- 上传youtubevideo服务器端
- 在servlet中运行java代码之前加载资源
- Jetty 9绝对的uri:http://java.sun.com/jsp/jstl/core无法解析
- JFrame在单独的类中,ActionListener怎么样?
- 在Runtime.getRuntime()。exec中有2个可执行文件的空格