- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
Gradle 和 Maven 究竟做了哪些 eclipse 或 sts 没有做的事情?根据我的阅读,它可以构建、运行等,这些都可以在 Eclipse 中轻松完成。
如果我有一个现有项目,我已经创建、构建并通过 tomcat 在 eclipse 中运行,我将使用 gradle 做什么?
最佳答案
在您从不与任何人共享的小项目中使用 Maven 或 Gradle 并没有太多好处; IDE 也可以进行构建。但随着开发人员数量的增加和构建复杂性的增加,将构建指令与 IDE 分开变得非常有用。让我们深入研究一下。
随着开发人员的增加,您不希望每个人都必须过来使用您的 IDE 来完成构建。那真的很烦人!所以他们在他们自己的机器上,但是他们往往有不同的设置(他们怎么敢有不同的用户帐户名!)并且他们的 IDE 安装设置可能也有点不同。所以我们需要某种构建指令,人们可以使用它来让事情顺利进行,如果每个人都可以重复使用相同的构建指令,那么您就不会得到太多“但它在我的机器上工作!”的实例。如果这些说明足够简单,可以让团队中的新程序员快速上手,这也非常有帮助。
但随着项目范围的扩大,经常发生的另一件事是它们的构建变得更加复杂。他们经常获得额外的依赖(他们并不是开始需要一个高性能的日期解析器和 MIME 类型标识符,但他们已经成为必需的,你不想从头开始编写所有这些)并且意味着您必须确保在构建完成后,使用了那些依赖项的正确版本。但这并不是复杂性增加的唯一方式。通常情况下,您会发现您正在使用更多自动生成的代码。您可能会发现自己经常使用 XML 模式或 WSDL,或者可能使用 Hibernate、Spring,或者……好吧,有很多方法可以使事情变得复杂,好吗?在这些场景中,让各种步骤正确、可靠地完成所有构建可能有点棘手,但是将它们编码为 Maven 之类的指令,一旦您一开始就采取行动,事情就会变得容易得多。 (当您开始尝试处理需要许多协同工作的不同子程序的项目时,这一点变得更加重要;其中一些显然很难构建即使使用 Maven 或 Gradle 或任何其他工具.)
然后就有可能将工作卸载到构建服务器、自动运行测试、干净地管理依赖项等。IDE 本身并不能很好地处理这些;他们做得合理的地方,通常是因为他们在幕后使用 Maven 等工具来完成繁重的工作。
tl;dr
您不必让您的代码与构建系统一起工作,但如果您这样做并且在很多方面都会有所帮助。
关于java - 试图了解 gradle 和 maven 实际上做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23047758/
我是 C++ 的新手,我在使用这段代码时遇到了问题: string output_date(int day, int month, int year){ string date; if
所以我这样做了 tar cvzf test.zip FP 为了创建目录 FP 的 zip 但是,它会列出 zip 中的目录 FP/ FP/php/ FP/php/pdf/ FP/php/docs/ F
我正在尝试在 Swift、Xcode 7.3(所以是 Swift 2.2)中创建一个通用类,但我似乎无法让它通过编译器: protocol Struct1Protocol { } struct Str
我的测试用例是这样的: class FooTest extends PHPUnit_Framework_TestCase { /** @covers MyClass::bar */ f
我正在尝试将brew install wine作为使electron-builder工作的一步。但是我所能得到的只是以下响应: ==> Installing dependencies for wine
我这样做: string[,] string1 = {{"one", "0"},{"Two", "5"},{"Three","1"}}; int b = 0; for(int i = 0; i <=
我正在尝试使用 SetWindowsHookEx 键盘 Hook Notepad.exe。 如您所见,工作线程正在将其 ASCII 代码(即 wParam)发送到指定的服务器。 UINT WINAPI
我正在尝试将 ListView 实现到我的 Fragment 中,但无论我尝试什么,我都会得到一个 NullPointerException。我检查对象是否为 null 并记录是否为 null,看起来
我尝试在一行中对齐两个 div。使用 float left 属性,一切顺利。但是当我在 div 中使用图像时,它开始产生问题。 所以这是我的示例代码:- Some headi
我目前正在使用此代码来获取图像的灰度图像表示并以 (512, 370, 1) 的格式表示它大批。 img_instance = cv2.imread(df.iloc[i][x_col]) / 255.
总结 我正在创建一个简单的应用程序,它允许用户选择一个包含顶级窗口的进程。用户首先键入 native DLL(而非托管 DLL)的路径。然后用户键入将在 Hook 过程中调用的方法的名称。该方法不得返
我是一名优秀的程序员,十分优秀!