我来自Ruby on Rails背景,我正在学习Java Spring MVC。当我尝试在STS中使用Maven编译我的代码时,它希望我包含一个目标。 All the guides I read on this seem vague and unclear.目标的重点是什么?为什么我不能编译我的源代码并运行它?
答案 0 :(得分:3)
您必须了解Maven 复杂和模块化。
它没有任何“编译”代码或“运行”代码的概念。它的作用是按build lifecycle。
的顺序触发插件运行Maven目标会触发特定的Maven插件。例如,运行mvn compile
会触发Maven compiler plugin。
对于刚刚开始使用Java的人来说,这一切似乎都有点过头了,而且有很多“为什么Maven不能就其所说的那样做”的问题。
其中大多数源于对Maven 的基本误解。它(严格来说)不是为了“编译和运行”代码而设计的。它旨在按特定顺序执行许多预配置的步骤。
说到“运行你的代码”,这变得更加棘手:
mvn exec:java
。你显然需要配置插件mvn tomcat7:run-war
。mvn gwt:run
所有这些目标的共同点是,它们会触发特定,预配置插件,执行您要求的任务。
进一步值得指出的是,Maven旨在编译,测试和安装您的代码,而不是运行它。因此,虽然可能存在用于运行代码的插件,但Maven的真正优势在于能够自动编译,测试和部署代码到Maven存储库。
最后请注意,您链接的页面顶部的大量红色警告表示:
Apache Maven 1.x已经到了终点,已不复存在 支撑。
请注意。我们现在正在Maven 3.2.X。不要阅读古代和过时版本的文档。这没有任何意义,只会让你感到困惑。