面向Python程序员的Maven简介

面向Python程序员的Maven简介

Maven是Java程序员最常用的自动化构建工具。Python没有功能同Maven完全一致的工具,但可以认为Maven大致相当于pip这样的包管理系统,或者PyBuilder、Distutils

Maven也是安装运行Deeplearning4j最简便的方式,它所提供的Scala API有着会让不少Python程序员感到似曾相识的语法,同时也具备各种强大的功能。

作为一种自动化构建工具,Maven把源代码编译为字节码,将目标文件链接生成可执行文件、库文件等。Maven的交付物是一个JAR文件,用Java源代码以及程序部署所需的资源创建。

(JAR文件即Java归档文件,英语为Java ARchive,是一种软件包文件格式,用于聚合大量的Java类文件、相关的元数据以及文本和图像等资源。JAR是一种压缩文件格式,帮助Java运行时部署一组类和与之相关的资源。)

Maven会从它的中央仓库动态下载所需的Java库和Maven插件,这些库和插件由存储项目对象模型(Project Object Model)的XML文件(即POM.xml)指定。

Alt text

《Maven权威指南》中提到:

	从命令行运行mvn install,将处理资源文件,编译源代码,运行单元测试,创建一个JAR,然后把这个JAR安装到本地仓库,以供其他项目重复使用。 

与Deeplearning4j一样,Maven遵循约定优于配置的原则,这也就是说,Maven会为项目提供一系列默认值,在运行时程序员无需为每个新项目指定所有的参数。

如果同时安装了IntelliJ和Maven,IntelliJ允许用户在IDE中创建新项目时选用Maven,并且有向导帮助您进行设置(我们的快速入门指南中有更为详细的介绍)。如此一来,构建工作就可以全部在IntelliJ当中完成。

或者也可以用下列命令在项目的根目录下使用Maven,对项目执行干净构建:

	mvn clean install -DskipTests -Dmaven.javadoc.skip=true

上述命令让Maven在运行安装之前清除所有已编译文件目录,确保对项目进行从零开始的干净构建。

目前已有数本关于Apache Maven的书籍可供参考,可以在支持这一开源项目的Sonatype公司的网站上找到。

Maven疑难解答

扩展阅读:

Deploying models? There's a tool for that.