Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 学习Maven的思考_Java_Maven 2 - Fatal编程技术网

Java 学习Maven的思考

Java 学习Maven的思考,java,maven-2,Java,Maven 2,我有一个用Java做的辅助项目。这是一个非常直接的网络应用程序。它在Linux服务器上的Tomcat中运行,并使用MySQL数据库。大部分代码都是用Spring框架编写的。它有很多单元测试。当我编写代码时,它是在Eclipse中。在部署应用程序时,我运行一些shell脚本将WAR文件移动到web服务器,进行数据库更新,并对apache配置进行更改。我是唯一一个开发人员,现在它只部署到一个环境(生产),尽管有一天我可能也想有一个测试或登台环境。我通过Eclipse插件使用SVN版本控制 我经常听说

我有一个用Java做的辅助项目。这是一个非常直接的网络应用程序。它在Linux服务器上的Tomcat中运行,并使用MySQL数据库。大部分代码都是用Spring框架编写的。它有很多单元测试。当我编写代码时,它是在Eclipse中。在部署应用程序时,我运行一些shell脚本将WAR文件移动到web服务器,进行数据库更新,并对apache配置进行更改。我是唯一一个开发人员,现在它只部署到一个环境(生产),尽管有一天我可能也想有一个测试或登台环境。我通过Eclipse插件使用SVN版本控制


我经常听说有人在项目中使用Maven。既然有这么多人在使用它,我对自己说它一定很好。我想在业余时间学习它。唯一的问题是我不太明白为什么我要使用Maven?我的第一段听起来像是适合Maven的项目吗?对于一个与数据库交互的项目来说,它有什么特别的优势吗?

我在工作中愤怒地使用maven。这是一个严厉的情妇。只要你在做很多其他人都做过的事情,这会让事情变得容易。这一点很重要,只要你按照maven认为你应该做的方式去做。走出那条狭窄的小路,它会在你的每一步都与你搏斗


我对在边上使用它印象深刻。它像ANT一样灵活,同时利用maven的依赖系统。而且,它正在孵化中,所以边缘有点粗糙。

我们做的正是你在我们项目中做的,我们使用maven。您可能希望使用maven以标准化的布局和方式构建项目。您不必将所有这些jar依赖项存储在SVN中,也不必将它们保存在特殊的位置,maven会为您做到这一点。Maven还可以作为一种让其他开发人员轻松理解您的项目的方法。一旦你开始使用它,你就再也不想回头看了:)

Maven非常适合你的项目IMO。Maven是一个全方位的构建和部署管理工具。它最大的优点是,它使构建脚本比功能上类似的Ant文件或shell脚本更易于维护

使用maven有很多优点,最大的优点是它更喜欢约定而不是配置。这意味着,如果您使用Maven目录结构部署了项目,那么构建和运行JUnit测试几乎不需要配置

Maven给你的另一个大胜利是依赖管理。您可以在Maven的名为项目对象模型(POM)的配置文件中声明性地定义项目的依赖项,Maven负责将所有JAR存储在其维护的本地目录结构中。对于公开可用的工件,JAR将自动从Maven中央存储库下载,对于内部或专有的第三方JAR,您可以使用单个命令将其安装到存储库中

除了组织这些工件并自动设置构建类路径以包含所有必要的JAR之外,maven还将管理依赖层次结构。这意味着,如果您的项目依赖于JARA,而A依赖于JARB,那么JARB将自动与WAR绑定,即使您没有在构建配置中将其明确列为依赖项

另外,我要说,从专业开发的角度来看,学习Maven是有意义的,因为根据我的经验,Maven已经取代Ant成为开源和专有Java项目中法律上首选的构建工具


综上所述,如果您拥有一个快速可靠的构建系统,那么仅仅为了使用与其他人相同的工具而将其转换为Maven可能是不值得的。

Maven适合您想要做的事情。与大多数构建工具不同,maven明智地使用约定(至少比其他许多工具好),并且它在您提到的每个领域都有“插件”:

单元测试:

Eclipse集成:

部署WAR文件:和

Maven还可以帮助您在Tomcat上进行集成测试(如果您有),因为您可以使用启动、停止或部署war

无论如何,如果你打算在业余时间阅读,这里有一本免费的书(PDF格式):


希望有帮助

您的项目听起来不适合Maven。您似乎有一个工作开发环境。为什么要另设一个呢?它只会给你一个需要维护的项目文件,这打破了良好的ol原则。

除了许多oss项目正在使用(或转换为)maven和一些封闭源代码项目正在迁移到maven之外,你的项目不一定会从使用maven中受益匪浅

但是,如果您考虑开源,那么您的项目的用户可能会受益于使用Maven的项目。

maven(jar依赖项)的一些重要优点可以通过ivy()实现

再说一遍,因为你似乎在暗示你是唯一的开发者。如果maven不适合您,您可以快速恢复

BR,

~A

不要。看看别人是什么,仔细研究。另外,考虑一下我在Maven上的一些其他评论。所以,

< P>我以前使用Maven进行依赖管理,因为我厌倦了添加所有的JAR,如果我想在另一个框上测试它。你真的不必为此“学”它,在你学会它之前不会花很多时间


然而,最简单的方法是问问已经了解mvn的人,这样他就可以向你展示它是如何工作的,然后你就可以很快地学会它。

我曾经开始了一项新的临时工作,那就是使用Maven。花了两天时间试图弄清楚他们的maven构建是如何工作的。结果他们都在使用maven 1.01