配置 pom.xml
<plugin>
<artifactId>maven-assembly-plugin</artifactId> <!-- 官网给出的配置,没有配置 groupId,这里也不配置 -->
<version>2.6</version>
<executions>
<execution>
<id>make-assembly</id> <!-- ID 标识,命名随意 -->
<phase>package</phase> <!-- 绑定到 PACKAGE 生命周期阶段 -->
<goals>
<goal>single</goal> <!-- 在 PACKAGE 生命周期阶段仅执行一次 -->
</goals>
</execution>
</executions>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor> <!-- 自定义打包的配置文件 -->
</descriptors>
<appendAssemblyId>false</appendAssemblyId> <!-- 设为 FALSE, 防止 WAR 包名加入 assembly.xml 中的 ID -->
</configuration>
</plugin>
<profile>
<id>PROD</id> <!-- ID 标识符 -->
<properties>
<env>product</env> <!-- properties 定义 key-value, 这里 key 是 env, value 是 PROD -->
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!-- 默认激活 -->
</activation>
</profile>
<profile>
<id>DEV</id> <!-- ID 标识符 -->
<properties>
<env>dev</env> <!-- properties 定义 key-value, 这里 key 是 env, value 是dev -->
</properties>
</profile>
<profile>
<id>TEST</id> <!-- ID 标识符 -->
<properties>
<env>test</env> <!-- properties 定义 key-value, 这里 key 是 env, value 是 test -->
</properties>
</profile>
配置 assembly.xml
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<!-- ID 标识,命名随意 -->
<id>${project.artifactId}-assembly-${project.version}</id>
<!-- 默认为 TRUE, 设为 FALSE, 防止将 ${project.finalName} 作为根目录打进 WAR 包 -->
<!-- TRUE 结构: ${project.finalName}.war/${project.finalName}/WEB-INF -->
<!-- FALSE 结构: ${project.finalName}.war/WEB-INF -->
<includeBaseDirectory>false</includeBaseDirectory>
<!-- 设置为 WAR 包格式 -->
<formats>
<format>war</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory> <!-- target/classes -->
<outputDirectory>WEB-INF/classes</outputDirectory>
<excludes>
<exclude>jdbc.properties</exclude>
<exclude>log4j.properties</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>${project.basedir}/env/${env}</directory>
<outputDirectory>WEB-INF/classes/</outputDirectory>
</fileSet>
<!-- 将 webapp 下的文件输出到 WAR 包 -->
<fileSet>
<directory>${project.basedir}/src/main/webapp</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
<!-- 将项目依赖的JAR包输出到 WEB-INF/lib -->
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>WEB-INF/lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
通过以下命令运行生产、测试、开发环境

- 大小: 3.8 KB
分享到:
相关推荐
本文将深入探讨“Maven自定义Zip插件”,这是一个允许开发者自定义打包逻辑的重要特性,尤其适用于那些需要对源代码或资源进行特殊处理的项目。 Maven插件是Maven生态系统的核心组成部分,它们提供了各种各样的功能...
Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...
本文将深入探讨“Maven自定义插件小示例”,以帮助开发者更好地理解和利用Maven的强大功能。 Maven插件是Maven生态系统中的一个重要组成部分,它们提供了各种各样的功能,如编译、测试、打包、部署等。有时,标准...
本文将详细讲解如何使用Maven来打包一个Java项目,并创建JAR文件。 首先,Maven有三个主要生命周期阶段:`clean`、`default`(也称为`compile`)和`install`。每个阶段包含一系列的阶段(或者称为目标,如`compile`...
然而,有时候在使用Maven进行打包操作时,可能会遇到各种问题。本篇文章将详细阐述如何解决Maven打包出错的问题,并分享一些关于搭建Maven私服的知识。 一、Maven打包出错常见原因及解决办法 1. **依赖冲突**:当...
在自定义打包过程中,如果`agentStore`是一个包含配置文件或者重要资源的目录,我们可以将其添加到`assembly.xml`文件的`fileSets`中,确保它被正确地包含进打包文件。 例如: ```xml <directory>src/main/...
然而,如果我们希望在打包过程中直接将类文件放入`WebContent/WEB-INF/classes`,我们需要自定义Maven的配置。 要实现这一目标,我们需要修改项目的`pom.xml`文件,具体操作如下: 1. **配置`<build>`部分**:在`...
Maven通过插件系统提供了丰富的功能,而“Maven自定义plugin”则是指开发者根据自身需求定制的Maven插件。这篇文章将深入探讨如何创建和使用自定义的Maven插件。 首先,理解Maven插件的工作原理至关重要。Maven插件...
此外,还可以通过“运行配置”创建Maven构建,自定义打包命令和参数。 在“打包实战”中,你可能会学到如何处理依赖、解决版本冲突、配置插件、以及如何生成包含所有依赖的可执行JAR(fat JAR)。这通常通过`maven-...
在"maven+bat打包"的场景中,POM.xml文件中会包含一个特定的插件配置,用于执行自定义的批处理脚本。这个脚本通常位于项目目录下,用于执行一系列自动化任务,如清理、复制文件、压缩文件等。例如,我们可能会配置`...
Maven Plugin则是Maven中的一个重要组成部分,用于执行特定的任务,如编译、测试、打包、部署等。本篇文章将深入探讨Maven Plugin及其打包下载的相关知识点。 一、Maven Plugin简介 Maven Plugin是Maven中的插件,...
在这个“reportng源码(maven编译打包)”项目中,我们可以看到ReportNG的源代码,它是使用Maven构建系统进行管理的。Maven是一个广泛使用的Java项目管理和集成工具,它帮助开发者自动化构建、依赖管理和项目信息管理...
然而,有时候Maven的内置插件无法满足特定的需求,这时就需要自定义Maven插件来扩展其功能。本篇文章将深入探讨如何实现自定义的Maven插件。 首先,了解Maven插件的基本结构至关重要。一个Maven插件通常由一组Mojo...
Maven提供了多种打包插件,如maven-jar-plugin(默认的JAR打包插件)、maven-shade-plugin(用于生成可执行的fat JAR)和maven-assembly-plugin(支持自定义打包)。在这个场景中,我们将使用maven-jar-plugin和...
本篇文章将详细讲解如何在Maven打包过程中执行自定义插件包,以此来满足特定的项目需求。 首先,我们需要了解Maven的生命周期。Maven的生命周期分为三个阶段:clean(清理)、default(构建)和site(站点)。在...
本篇文章将深入探讨如何使用Maven Assembly插件来创建多个自定义包以及War包,这对于Java开发者来说尤其重要,因为它使得项目打包和分发变得更加方便。 Maven是一个强大的Java项目管理工具,它通过配置文件POM...
Maven作为项目管理和构建工具,可以帮助我们自动化构建、打包和依赖管理。本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven...
- **自定义源码包名称**:除了基本的源码打包功能外,`maven-source-plugin`还允许你自定义生成的源码包的名称,这对于大型项目或具有复杂依赖结构的项目来说非常有用。 - **源码排除**:有时候,你可能不希望某些...
同时,可以通过插件自定义构建过程,比如使用`maven-jar-plugin`生成JAR,`maven-source-plugin`打包源代码,或者`maven-war-plugin`构建WAR包。 7. **继承与聚合**:Maven的多模块项目既可以是继承关系(子模块...