首页 > 学院 > 开发设计 > 正文

企业级应用开发和Maven之间的那些事

2019-11-08 02:52:14
字体:
来源:转载
供稿:网友

如果找不到这个文件,可以从Maven安装目录下conf/settings.xml文件拷贝到~/.m2/目录。 Maven的使用

在正式开始之前,先来介绍一个概念:Archetype

每个公司经过长期的技术积累,虽然是不同的项目,但项目的代码基本结构、代码的打包方式基本是相同的。

Archetype是一个Maven项目模板管理工具,我们可以把前面说的项目一些共性的东西做成一个模板,在新项目开始的时候,只可使用Archetype直接初始化项目开发环境。在本文中我们就把Archetype理解为项目模板,在写本节时,在Maven公共仓库(http://search.maven.org/)中的Archetype已达1098个,对于常见的项目,我们可以直接基于这个Archetype创建初始环境即可。

下面我们开始新建一个项目,我们基于Maven公共仓库中的Archetype:sPRing-mvc-archetype为基于开始我们的项目。

执行如下命令:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeGroupId=co.ntier -DarchetypeArtifactId=spring-mvc-archetype -DinteractiveMode=false

相关参数说明:

DgroupID : java包名 DartifactID : 项目名称(会做为生成项目目录) DarchetypeGroupId: 模板所属组织ID,默认值为:org.apache.maven.archetypes(这里很容易出错哦,一定要指定模板的组织ID,要不然会报找不到模板。 DarchetypeArtifactId:模板名称 DinteractiveMode : 是否与maven交互,如果为true,会提示输入包名、版本号等信息,false时,都使用默认值

执行完命令后,会生成如下目录结构:

└── my-app ├── pom.xml └── src └── main ├── java │ └── com │ └── mycompany │ └── app │ ├── config │ │ └── MvcConfiguration.java │ └── controller │ └── HomeController.java └── webapp ├── WEB-INF │ ├── views │ │ └── home.jsp │ └── web.xml └── resources └── style.CSS

这是一个spring mvc 的 hello world 程序,我们可以看到,这里并没有看到我们所需要的相关spring的jar包,我们来看看maven核心配置文件pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>my-app</name> <url>http://maven.apache.org</url> <properties> <java.version>1.6</java.version> <spring.version>3.1.0.RELEASE</spring.version> <cglib.version>2.2.2</cglib.version> </properties> <dependencies> <!-- Spring core & mvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <type>jar</type> <scope>test</scope> </dependency> <!-- CGLib for @Configuration --> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>${cglib.version}</version> <scope>runtime</scope> </dependency> <!-- Servlet Spec --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> </dependencies> <repositories> <repository> <id>springsource-milestones</id> <name>SpringSource Milestones Proxy</name> <url>https://oss.sonatype.org/content/repositories/springsource-milestones</url> </repository> </repositories> <build> <finalName>my-app</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build></project>

配置文件大家一看就知道是干什么了,一开始的version、packaging等属性是定义这个项目的版本号、打包方式等,接下来的properties定义了一堆常量,后面的dependencies就是声明项目所依赖的一些包,最后的build是声明打包编译时需要的一些插件。

接下来,进入my-app目录,执行如下命令:

cd my-appmvn package

您将看到maven会到maven远程仓库将pom.xml中声明的依赖包下载到本地,然后执行打包。

命令执行完后,您将看到在target目录下生成了my-app.war的包,拿着这个包就可以去部署到各种java中间件上了。是不是很方便。

前面介绍过,maven并不是单纯的jar包依赖管理工具,Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),因此,除了管理jar包依赖,它还包括项目管理过程中常用的很多工具。

我们可以在根目录下建立test目录,将java测试用例放到下面,然后在命令行执行mvn test,就能看到测试结果,看测试有没有发生错误等。

对于开发人员,经常使用tomcat来开发的话,整个过程是很简单的。在刚才的my-app项目根目录执行:mvn tomcat:run,然后打开浏览器:http://localhost:8080/my-app ,您就将看到运行结果。没想到吧,都不用安装tomcat,全部通过maven就能搞定。

如果您是在开发一个纯java模块,那就执行:mvn install就可以把jar包发布到本地Repository,然后就可以在别的项目里引用这个jar包了,借助一些插件就可以把它发布到公司的统一Repository库中。

Maven还有很多很多的功能,本书maven就介绍到这里,详细的关于Maven的知识可以参考一些专业的书籍或官方文档。最后推荐您将下面的项目clone到本地来深入学习:

https://github.com/spring-projects/spring-mvc-showcase

git clone git://github.com/SpringSource/spring-mvc-showcase.git


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表