Eclipse.classpath文件和build.xml文件之间的关系是什么?

Eclipse.classpath文件和build.xml文件之间的关系是什么?,eclipse,maven,ant,build.xml,Eclipse,Maven,Ant,Build.xml,我使用Java/Eclipse进行开发,我从未真正使用过任何传统的构建工具,如ant或maven。我通常只依赖于通过eclipse构建项目,很少使用命令行。我真的不想花时间去了解ant/maven,但我想知道eclipse是否真的可以通过它的.classpath文件和任何其他设置来替代ant/maven的所有功能 请不要向我推荐一些使学习ant变得非常容易的教程。如果您的应用程序在Eclipse之外几乎不存在,那么您可能应该继续以这种方式使用Eclipse。但是Eclipse是一个开发工具开发人

我使用Java/Eclipse进行开发,我从未真正使用过任何传统的构建工具,如ant或maven。我通常只依赖于通过eclipse构建项目,很少使用命令行。我真的不想花时间去了解ant/maven,但我想知道eclipse是否真的可以通过它的.classpath文件和任何其他设置来替代ant/maven的所有功能


请不要向我推荐一些使学习ant变得非常容易的教程。

如果您的应用程序在Eclipse之外几乎不存在,那么您可能应该继续以这种方式使用Eclipse。但是Eclipse是一个开发工具开发人员,就像编写代码的人一样。除了最琐碎的项目之外,任何其他项目都必须处理开发人员以外的角色。应用程序将经历整个生命周期。事实上,存在不同的生命周期轴,无论是从项目管理的角度,还是从跨越许多阶段(如编码、编译、组装依赖项、打包、部署)的交付物的角度,还是从其他角度

当您查看这些贯穿各个阶段的可交付成果时,这些步骤中的很多都可以在Eclipse中手动完成。所以,再一次,如果这对你有效,赞美吧。然而,它没有实现自动化,而且对于某些步骤来说,Eclipse并不是合适的工具。例如:持续集成不是Eclipse构建的目标。CI服务器可能希望签出您的源代码并从头开始构建内容。它需要找到依赖项,可能是基于Eclipse的.classpath文件,但这会引入对Eclipse的依赖。现在,我已经看到大公司正是这样做的,但它有点笨重,因为这也不是Eclipse的目的

相反,有些工具非常擅长处理整个生命周期

*请注意,整个过程是一个非常主观的问题。从开发人员的角度来看,生命周期可以很好地分为几个阶段,但是您的大组织中的其他人可能会发现,他们的职责在任何给定的生命周期阶段细分中都没有得到充分的体现

Maven或Gradle就是这样的工具。将其视为具有多个工位的装配线。开发人员在其中一个工作站上使用Eclipse,但在装配线下面一直在运行。CI是另一个站点,使用竹子、哈德逊、詹金斯或类似的方法,但仍在工作的装配线下方。在Eclipse中,m2e插件是Eclipse和装配线Maven之间的连接器

另一种方法是使用脚本,或者替换您在Eclipse中执行的手动步骤,或者将它们连接在一起,或者补充它们。显然有许多语言可以使用,但是在构建工具领域中,Ant非常流行,因为它的功能与这个目的完全一致

如果你是一个专业的软件工厂,这可能已经是一个单一的开发项目的情况下,你需要一个装配线。Maven或Gradle给你一个现成的。如果你想游到上游,你可以用蚂蚁或其他东西建造自己的。如果您在这方面真的没有需求,请继续在Eclipse中手动执行操作

尽管Ant是用XML定义的,但我们作为开发人员自然会想到它,因为它有很多传统的顺序编程语言。Maven和Gradle有不同的方法,因此学习曲线更陡峭。但这绝对值得。如果你按照他们的方式去做,事情就会变得轻而易举,你不必为你想添加到装配线上的每一件事情都编写代码。这种手工制作的脚本总是从小处开始,但它们从来不会保持这种状态,是吗


除此之外,我还想指出,Maven还非常擅长解决依赖关系。这是它最为人所知的,但这不是这个问题的核心所在,事实上,这只是它能为您做的事情中的一小部分。

如果您的应用程序在Eclipse之外几乎不存在,那么也许您应该继续以这种方式使用Eclipse。但是Eclipse是一个开发工具开发人员,就像编写代码的人一样。除了最琐碎的项目之外,任何其他项目都必须处理开发人员以外的角色。应用程序将经历整个生命周期。事实上,存在不同的生命周期轴,无论是从项目管理的角度,还是从跨越许多阶段(如编码、编译、组装依赖项、打包、部署)的交付物的角度,还是从其他角度

当您查看这些贯穿各个阶段的可交付成果时,这些步骤中的很多都可以在Eclipse中手动完成。所以,再一次,如果这对你有效,赞美吧。然而,它没有实现自动化,而且对于某些步骤来说,Eclipse并不是合适的工具。例如:持续集成不是Eclipse构建的目标 . CI服务器可能希望签出您的源代码并从头开始构建内容。它需要找到依赖项,可能是基于Eclipse的.classpath文件,但这会引入对Eclipse的依赖。现在,我已经看到大公司正是这样做的,但它有点笨重,因为这也不是Eclipse的目的

相反,有些工具非常擅长处理整个生命周期

*请注意,整个过程是一个非常主观的问题。从开发人员的角度来看,生命周期可以很好地分为几个阶段,但是您的大组织中的其他人可能会发现,他们的职责在任何给定的生命周期阶段细分中都没有得到充分的体现

Maven或Gradle就是这样的工具。将其视为具有多个工位的装配线。开发人员在其中一个工作站上使用Eclipse,但在装配线下面一直在运行。CI是另一个站点,使用竹子、哈德逊、詹金斯或类似的方法,但仍在工作的装配线下方。在Eclipse中,m2e插件是Eclipse和装配线Maven之间的连接器

另一种方法是使用脚本,或者替换您在Eclipse中执行的手动步骤,或者将它们连接在一起,或者补充它们。显然有许多语言可以使用,但是在构建工具领域中,Ant非常流行,因为它的功能与这个目的完全一致

如果你是一个专业的软件工厂,这可能已经是一个单一的开发项目的情况下,你需要一个装配线。Maven或Gradle给你一个现成的。如果你想游到上游,你可以用蚂蚁或其他东西建造自己的。如果您在这方面真的没有需求,请继续在Eclipse中手动执行操作

尽管Ant是用XML定义的,但我们作为开发人员自然会想到它,因为它有很多传统的顺序编程语言。Maven和Gradle有不同的方法,因此学习曲线更陡峭。但这绝对值得。如果你按照他们的方式去做,事情就会变得轻而易举,你不必为你想添加到装配线上的每一件事情都编写代码。这种手工制作的脚本总是从小处开始,但它们从来不会保持这种状态,是吗

除此之外,我还想指出,Maven还非常擅长解决依赖关系。这是它最为人所知的,但这不是这个问题的目的,事实上,这只是它能为你做的一小部分

Eclipse知道如何基于.project和.classpath文件构建项目

xml是Ant使用的构建规则的默认文件名,因此当您在没有参数的情况下运行Ant时,它将使用此文件来确定要执行的操作

xml是描述Maven项目的默认文件名,因此当您运行mvn compile时,它将使用此文件来确定如何构建项目

Eclipse可以基于Ant构建文件或POM文件导入项目,并创建相应的.project和.classpath文件

Eclipse、Ant和Maven都是不同的工具,它们不能相互替代。它们有一些重叠的功能,但也有一些独特的功能

能够使用命令行构建项目是一项非常有用的技能,也是成为一名优秀程序员的一部分。在程序员能力矩阵中,能够使用命令行构建软件被认为是级别0、1、2、3中的级别1,如果你不能做到这一点,那就不太好了。

我强烈建议学习Maven

Eclipse知道如何基于.project和.classpath文件构建项目

xml是Ant使用的构建规则的默认文件名,因此当您在没有参数的情况下运行Ant时,它将使用此文件来确定要执行的操作

xml是描述Maven项目的默认文件名,因此当您运行mvn compile时,它将使用此文件来确定如何构建项目

Eclipse可以基于Ant构建文件或POM文件导入项目,并创建相应的.project和.classpath文件

Eclipse、Ant和Maven都是不同的工具,它们不能相互替代。它们有一些重叠的功能,但也有一些独特的功能

能够使用命令行构建项目是一项非常有用的技能,也是成为一名优秀程序员的一部分。在程序员能力矩阵中,能够使用命令行构建软件被认为是级别0、1、2、3中的级别1,如果你不能做到这一点,那就不太好了。

我强烈建议学习Maven