当前位置: 首页 > 面试题库 >

所有Java Build工具都有什么?

燕和同
2023-03-14
问题内容

使用ant,maven和buildr有什么意义?在eclipse或netbeans中使用using构建会无法正常工作吗?我很好奇扩展构建工具的目的和好处是什么。


问题答案:
  • 依赖管理 :构建工具遵循组件模型,该组件模型提供有关在哪里寻找依赖的提示。在Eclipse / Netbeans中,您必须依赖JAR,并且您实际上并不知道此JAR是否已更新。使用这些构建工具,它们“知道”依赖项中的更新(通常是由于与源代码控制库的良好集成),重新计算可传递的依赖项,并确保所有内容始终使用最新版本构建。

  • 访问控制 :除了类级别的访问控制外,Java没有更高的抽象性。使用这些构建工具,您可以准确地指定要依赖的项目,并以更高的粒度级别控制可见性和访问。

  • 定制控件 :Eclipse / Netbeans构建始终构建JAR文件。使用自定义构建机制,可以根据需要使用额外的元数据信息构建自己的自定义(公司内部)档案。

  • 插件 :构建工具附带了许多插件,这些插件可以在构建过程中执行各种操作。从基本的东西(例如生成Javadocs)到更简单的东西(例如运行测试和获取代码覆盖率,静态分析,生成报告等)。

  • 运输 :某些构建系统还管理档案的运输-从开发系统到部署或生产系统。因此,您可以配置传输路线,时间表等。

看一下一些持续集成服务器,例如CruiseControl或Hudson。此外,Maven的功能页面还提供了一些您想了解的知识。



 类似资料:
  • 本文向大家介绍如何处理所有Replica都不工作相关面试题,主要包含被问及如何处理所有Replica都不工作时的应答技巧和注意事项,需要的朋友参考一下   上文提到,在ISR中至少有一个follower时,Kafka可以确保已经commit的数据不丢失,但如果某个Partition的所有Replica都宕机了,就无法保证数据不丢失了。这种情况下有两种可行的方案: 1.等待ISR中的任一个Repli

  • 问题内容: 如何运行选择所有非null的MySQL查询?就像 我只需要删除所有内容即可吗? 问题答案: 您必须在每列上明确说明条件,例如

  • 问题内容: 由于某种原因,我安装的gcc似乎在错误消息中代替所有%s的字符打印了“带克拉的字符”,例如, 有人看过吗?(毋庸置疑,Google很难做到这一点。) (在Ubuntu 8.10上) 编辑:http ://ubuntuforums.org/showthread.php?t=252832上的那个人说要设置LC_MESSAGES = en_US,但这对我没有任何帮助。 问题答案: 啊哈!问题

  • 问题内容: 每个Java 都有方法和(以及其他变体)。我从来没有使用过这些,我怀疑很多其他人没有使用过。为什么这些是如此基本,以至于每个对象都必须拥有它们,并且拥有它们会对性能产生影响(大概在其中存储了某种状态)? 编辑 以强调该问题。如果我有一个具有100,000个元素的元素,那么每个元素都具有从扩展的这些方法。但是似乎所有这些都不大可能必须了解管理的线程。 编辑 出色而有用的答案。@Jon有一

  • 问题内容: 我正在进行代码审查,并遇到了一个使用所有静态方法的类。入口方法接受几个参数,然后开始调用其他静态方法,并传递入口方法接收到的所有或某些参数。 它不像具有大量不相关的实用程序功能的Math类。在我自己的常规编程中,我很少编写Resharper弹出并说“这可能是静态方法”的方法,而当我这样做时,它们往往是无用的实用方法。 这种模式有什么问题吗?如果类的状态保存在字段和属性中或使用参数在静态

  • 问题内容: 我知道虚函数具有取消引用调用方法的开销。但是我想以现代建筑的速度几乎可以忽略不计。 为什么C ++中的所有函数都不像Java中的虚拟函数那样有特定的原因? 据我所知,在基类中定义虚拟函数是足够/必要的。现在,当我编写父类时,我可能不知道哪些方法会被覆盖。这是否意味着在编写子类时,有人必须编辑父类。这听起来不方便,有时甚至不可能? 更新: 以下是乔恩·斯凯特(Jon Skeet)的回答: