<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.em</groupId>
<artifactId>em</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>em</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<finalName>em</finalName>
<warName>${finalName}.war</warName>
<warExplodedDirectory>exploded/${warName}</warExplodedDirectory>
<logback.version>1.1.3</logback.version>
<slf4j.version>1.7.6</slf4j.version>
</properties>
<dependencies>
<!-- ================================================= -->
<!-- 日志及相关依赖(用slf4j+logback代替jcl+log4j) -->
<!-- ================================================= -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- slf4j的实现:logback,用来取代log4j。更快、更强! -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- 将现有的jakarta commons logging的调用转换成slf4j的调用。 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- Hack:确保commons-logging的jar包不被引入,否则将和jcl-over-slf4j冲突 -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<filters>
<filter>filter.properties</filter>
</filters>
<resources>
<!-- 先指定src/main/resources下所有文件和文件夹为资源文件 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<!-- 设置对*.properties,logback.xml进行过虑,即这些文件中的${key}会被替换 -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>*.properties</include>
<include>logback.xml</include>
</includes>
</resource>
</resources>
<!-- 官网 http://maven.apache.org/plugins/index.html -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<!-- 字符集编码 -->
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<!-- 源代码使用的开发版本 -->
<source>1.6</source>
<!-- 需要生成的目标class文件的编译版本 -->
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!-- 默认exploded WAR目录为 target/em-1.0-SNAPSHOT(格式为<artifactId>-<version>)
修改以后目录变成target/exploded/em.war -->
<webappDirectory>target/${warExplodedDirectory}</webappDirectory>
<!-- 打包后的war文件名,默认是 <artifactId>-<version>.war -->
<warName>${finalName}</warName>
<webResources>
<resource>
<!-- 启用filter的auto config,build/filters会覆maven-war-plugin插件下configuration/filters -->
<filtering>true</filtering>
<!-- 指定资源目录(默认目录src/main/resources) -->
<directory>${basedir}/src/main/webapp</directory>
<includes>
<!-- auto config会替换的文件列表 -->
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<!-- 指定该资源目录下的文件的拷贝目标位置 -->
<targetPath>/</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<!--<executions>-->
<!--<execution>-->
<!--<id>assembly</id>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>single</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<configuration>
<finalName>${finalName}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptor>assembly.xml</descriptor>
</configuration>
</plugin>
</plugins>
</build>
</project>
assembly.xml 示例
<?xml version="1.0" encoding="UTF-8"?>
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>em-dist</id>
<baseDirectory>${warName}</baseDirectory>
<formats>
<format>tgz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>target/exploded/${warName}</directory>
<includes>
<include>**</include>
</includes>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
几点说明:
1、maven-compiler-plugin插件,默认输出到编译后的class文件到 target\classes
2、maven-war-plugin插件,命令行 mvn war:war(它只是拷贝资源文件到目标位置),如果此时没有target\classes文件夹,执行war命令时,也不会提示错误,故一般绑在一起执行mvn compile war:war
3、maven-assembly-plugin插件,一般是配置自动化发布脚本或系统使用,命令行 mvn assembly:assembly ,其作用是将某文件夹打包为 tgz文件。一般用于项目部署或归档
分享到:
相关推荐
创建这个项目时,通常会用MyEclipse IDE的Webapp Maven项目模板,它会自动配置好基本的POM和文件结构。如果你按照描述中的链接(已失效,无法访问)创建项目,你应该已经有一个能够正常运行的Maven Webapp项目。 在...
【标题】"jk1107 Maven Webapp.zip" 是一个包含蒋老师个人整理的聊天室和杰信商贸项目的Maven Web应用程序的压缩文件。这个压缩包的核心是使用Maven,一个强大的Java项目管理和集成工具,来构建Web应用程序。Maven...
1. **安装和配置Maven**:确保本地系统已安装并配置好Maven环境,这包括设置Maven的环境变量和本地仓库路径。 2. **创建项目**:在命令行中,使用`mvn archetype:generate`命令,并指定对应的archetype id,如`...
Maven使用一个名为pom.xml的项目对象模型(Project Object Model)文件,定义项目配置、依赖关系以及构建过程。 JAX-RS是Java EE的一部分,用于实现RESTful服务。它提供了注解,如`@Path`、`@GET`、`@POST`等,使得...
通过这个"springmvc-maven-webapp-helloworld"源码,学习者可以了解到一个典型的Java Web应用程序的开发流程,包括如何配置和使用Spring MVC、Maven、MyBatis,以及如何进行数据库连接和测试。此外,它还能帮助...
**Jetty + Maven Webapp 实现HTTP与HTTPS的简要介绍** 在Web应用程序开发中,Jetty是一个轻量级、高性能的嵌入式Java HTTP服务器和Servlet容器。它被广泛用于快速开发、测试和部署Java Web应用。Maven则是一个项目...
### Maven环境搭建与配置详解 #### 一、Maven简介 Maven是Apache下的一个开源项目,它是一种项目管理和理解工具。通过一个中心信息管理的方式,Maven能够管理项目的构建、报告和文档。Maven使用描述性的XML文件来...
### Maven开发环境搭建详解 ...通过上述步骤,你可以成功地在Eclipse中搭建基于Maven的Java Web项目开发环境,并进行调试和服务配置。这不仅能够提高开发效率,还能够帮助开发者更好地管理项目的依赖关系。
当我们配置Maven来构建Struts2、Hibernate4和Spring3的Web应用程序时,Maven会自动从中央仓库下载所需的库文件,并将它们加入到项目的类路径中,从而解决了开发中常见的库依赖问题。此外,Maven还可以配置特定的生命...
在本文中,我们将探讨如何使用 Maven 创建一个 Web 应用程序,包括环境配置、IDE 集成以及项目结构的设置。 **1. Maven 安装与配置** 首先,你需要从 Maven 官方网站下载最新版本的 Maven,解压缩后设置环境变量 ...
2. Maven环境配置 - 从官方网站下载Maven的bin包,而非source包。 - 配置MAVEN_HOME环境变量,指向下载的Maven安装路径。 - 将Maven的bin路径添加到Path变量中。 - 通过输入mvn -v命令测试Maven是否安装成功。 ...
1. 安装与配置Maven:首先需要在本地安装Maven,并配置环境变量,确保`mvn`命令可全局使用。配置`settings.xml`文件,设置镜像源以提高下载速度。 2. 创建项目结构:标准的Maven Webapp项目结构通常包含以下几个...
总的来说,webpom提供的Maven Webapp模板简化了Java Web应用的开发流程,使得开发者可以专注于编写业务代码,而无需花费过多时间在项目配置上。通过学习和使用这个示例,我们可以更好地理解和掌握Maven在Web开发中的...
SSM框架是Java web开发中常用的三大框架——Spring、SpringMVC和MyBatis的集成,这个名为"springMVC_gday01 Maven Webapp.zip"的压缩包提供了一个使用SSM开发Web应用的示例项目。让我们深入探讨一下这个项目可能包含...
Maven遵循标准的Web应用目录结构,如`src/main/webapp`存放静态资源、JSP页面和WEB-INF目录。WEB-INF下包含`web.xml`部署描述符,虽然在Spring Boot中可选,但了解其用法仍然是重要的。 完成项目配置后,可以使用...
当我们谈论“maven初始化webapp”时,我们实际上是指使用Maven来创建一个基础的Web应用程序项目结构,这个结构符合Java EE规范,尤其是对于基于Servlet和JSP的Web应用。 首先,让我们详细了解一下Maven的基本概念。...
新建maven项目失败,不能下载maven-archetype-webapp-1.0.jar包
maven-webapp-plugin-1.4.0-incubating-sources.jar
以上步骤详细介绍了如何在本地环境中安装配置Maven,并通过Eclipse创建和部署Maven项目。Maven作为一款强大的自动化构建工具,在实际开发过程中具有重要的作用,能够帮助开发者高效地管理和构建项目。
- Maven会根据所选骨架生成相应的Web项目结构,包括`src/main/webapp`等目录。 **5. 在Eclipse中搜索并添加JAR组件** - 利用Eclipse内置的Maven支持,可以直接在项目中搜索并添加所需的JAR组件。 - 通过`Maven > ...