使用Maven来构建应用程序,可以非常方便地管理应用相关的资源。众所周知,应用程序中涉及到的一些依赖关系,如Java应用程序依赖jar文 件,如果只是手动找到相应的资源,可能需要花费一些时间。而且,即使已经积累了库文件,在未来应用程序升级以后,还要考虑到依赖库文件的升级情况,再次搜 索收集。
还有一个问题,对应用程序依赖文件的管理是个非常复杂工作,占用存储空间不说,还可能因为应用之间的版本问题导致依赖冲突。使用Maven的pom模型来构建应用程序,可以更加有效地的管理,而且配置内容非常清晰(有时多了,可能pom文件显得有点臃肿)。
下面将常用的Maven配置,整理如下,以备参考。首先,整理一个简单的目录,作为快速查询之用:
- 设置字符集
- 拷贝src/main/resources/资源文件
- 编译代码
- 、编译打包成jar文件
- 构建测试用例配置
- 输出依赖jar文件到指定目录
- 配置指定的repository
- 将应用及其依赖jar文件打成一个jar文件
具体配置的详细内容,如下所示:
1、设置字符集
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
在需要设置字符集的地方,引用${project.build.sourceEncoding}即可。
2、拷贝src/main/resources/资源文件
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>${project.build.sourceEncoding}</encoding> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/resources/</directory> <includes> <include>*.properties</include> <include>*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build>
3、编译代码
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </pluginManagement> </build>
可以指定源代码编译级别。
4、编译打包成jar文件
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>without-configs</classifier> <excludes> <exclude>*.properties</exclude> <exclude>*.xml</exclude> </excludes> </configuration> </execution> </executions> </plugin> </pluginManagement> </build>
可以指定打包后jar文件的文件名后缀,同时可以设置是否将配置文件也打包到jar文件中。
5、构建测试用例配置
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.9</version> <configuration> <skip>true</skip> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> </pluginManagement> </build>
构建应用时,可以配置是否执行测试用例代码,也可以配置如果测试用例未通过是否忽略。
6、输出依赖jar文件到指定目录
<build> <pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <versionRange>[2.0,)</versionRange> <goals> <goal>copy-dependencies</goal> <goal>unpack</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins> </build>
上面,和pluginManagement并列的plugins元素中配置的是拷贝依赖jar文件到target/lib目录下面,如果在Eclipse 中出现maven-dependency-plugin (goals “copy-dependencies”, “unpack”) is not supported by m2e错误,上面pluginManagement元素中的配置,可以解决这个错误提示。
7、配置指定的repository
<repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories>
如果我们需要要的一些依赖jar文件在maven中央repository中没有,可以在pom文件中配置特定的repository,一般需要配置id和url。
8、将应用及其依赖jar文件打成一个jar文件
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>org.shirdrn.solr.cloud.index.hadoop.SolrCloudIndexer</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
相关推荐
1. **构建应用**:使用`mvn package`命令,Maven将编译源代码,运行测试,生成war文件。 2. **部署到Tomcat**:将生成的war文件复制到Tomcat的webapps目录下,或者使用Maven的Tomcat插件进行自动化部署。 六、使用...
** Maven 3 入门 — 创建 Web 应用程序指南** Maven 是一款强大的项目管理和构建工具,尤其在Java开发领域广泛使用。它通过提供一套标准化的构建过程和依赖管理机制,使得开发者能够更高效地管理项目。在本文中,...
总之,Maven构建SSM框架的过程涉及到了项目结构规划、依赖管理、Web容器配置、SpringMVC与MyBatis的集成等多个环节。通过熟练掌握这些知识点,开发者可以快速搭建起一个功能完备的Java Web应用。
** Maven构建指南(英文版) ** Maven是一款强大的Java项目管理工具,它简化了项目的构建、依赖管理和文档生成过程。Maven通过使用一个标准的目录结构和一个XML格式的项目对象模型(Project Object Model,POM),...
作用:运行应用程序中的单元测试 4. 打包命令 命令:mvn package 作用:依据项目生成 jar 文件 命令:mvn install 作用:在本地 Repository 中安装 jar 命令:mvn deploy 作用:将 jar 包发布到远程仓库 5. ...
2. **配置环境变量**:设置 `MAVEN_HOME` 环境变量指向 Maven 的安装目录,并在 `Path` 环境变量中添加 `%MAVEN_HOME%\bin`,以便在命令行中可以直接调用 Maven 命令。 3. **配置本地仓库**:Maven 默认会在用户的...
【标题】"Navicat for MySQL Maven常用合集"是一个针对数据库管理工具Navicat for MySQL的Maven项目集合,它包含了一系列常用的Maven依赖,旨在帮助开发者快速配置项目,提高开发效率。这个集合主要关注的是如何在...
SSM(Spring、SpringMVC、MyBatis)框架是Java开发中常用的一种组合,用于构建Web应用程序。在本主题中,我们将深入探讨Maven如何管理和组织SSM项目的配置文件,以及这些配置文件的主要功能。 1. Maven项目结构与...
本实例聚焦于"Maven多模块web应用",将详细介绍如何使用Maven构建一个多模块的Web应用程序。 首先,我们需要理解什么是Maven多模块项目。在Maven中,一个父项目可以包含多个子模块,每个子模块代表项目的一个独立...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过依赖管理和项目生命周期的概念,帮助开发者编译、测试、打包、...
Spring框架则是一个广泛使用的Java企业级应用开发框架,它提供了一种模块化的方式来管理应用程序的组件,包括数据访问、事务管理、安全性和Web服务。Spring与XFire的集成使得开发者可以方便地在Spring应用上下文中...
Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。由Apache软件基金会开发,它简化了构建过程,通过一个统一的配置方式管理项目的依赖关系,编译,测试,打包,部署等生命周期过程。在本篇中,...
在Eclipse 3.7中,可以通过“New -> Dynamic Web Project”创建一个Maven Web应用程序,然后在项目属性中配置Maven支持,添加`maven-war-plugin`以完成web应用的构建。 **4. 生命周期** 4.1 三套生命周期 Maven有...
Maven 3.0.4 是 Apache 软件基金会开发的一款强大的项目管理工具,它主要用于简化 Java 应用程序的构建过程。这个版本是在 Maven 的发展历史上一个重要的里程碑,引入了多项改进和优化,提升了构建效率和用户体验。 ...
标题中的“springboot(web项目,非maven)”指的是一个基于Spring Boot框架构建的Web应用程序,但它不是使用Maven作为构建工具。Spring Boot简化了Java Web应用的开发过程,提供了快速构建可运行的应用程序的方式,而...
在我们的项目中,`pom.xml`就是POM文件,它是Maven构建和管理项目的基础。 2. **依赖管理**:Maven通过POM文件中的`<dependencies>`标签管理项目所需的外部库。当你声明了一个依赖,Maven会自动下载并管理这些依赖...
【标题】"mavenWeb空项目"所涉及的知识点主要集中在Java编程语言和Maven构建工具上,这是一个基于Maven的、已经过单元测试的Web应用程序的基础框架。下面将详细介绍这两个核心领域的相关知识。 **一、Java编程语言*...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它通过定义项目的结构和依赖关系,自动处理构建过程,简化了项目的构建、测试和部署。Maven 3.8.6是Maven的一个版本,它包含了从早期...