`

maven 自定义打包

 
阅读更多
配置 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自定义Zip插件”,这是一个允许开发者自定义打包逻辑的重要特性,尤其适用于那些需要对源代码或资源进行特殊处理的项目。 Maven插件是Maven生态系统的核心组成部分,它们提供了各种各样的功能...

    Maven build插件之Maven-assembly-plugin自定义打包

    Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...

    maven 自定义插件小示例

    本文将深入探讨“Maven自定义插件小示例”,以帮助开发者更好地理解和利用Maven的强大功能。 Maven插件是Maven生态系统中的一个重要组成部分,它们提供了各种各样的功能,如编译、测试、打包、部署等。有时,标准...

    maven打包 maven打jar包详细步骤

    本文将详细讲解如何使用Maven来打包一个Java项目,并创建JAR文件。 首先,Maven有三个主要生命周期阶段:`clean`、`default`(也称为`compile`)和`install`。每个阶段包含一系列的阶段(或者称为目标,如`compile`...

    maven打包出错解决办法,亲测绝对可以!

    然而,有时候在使用Maven进行打包操作时,可能会遇到各种问题。本篇文章将详细阐述如何解决Maven打包出错的问题,并分享一些关于搭建Maven私服的知识。 一、Maven打包出错常见原因及解决办法 1. **依赖冲突**:当...

    maven-assembly 自定义打包方式

    在自定义打包过程中,如果`agentStore`是一个包含配置文件或者重要资源的目录,我们可以将其添加到`assembly.xml`文件的`fileSets`中,确保它被正确地包含进打包文件。 例如: ```xml &lt;directory&gt;src/main/...

    Maven打包,指定classes路径

    然而,如果我们希望在打包过程中直接将类文件放入`WebContent/WEB-INF/classes`,我们需要自定义Maven的配置。 要实现这一目标,我们需要修改项目的`pom.xml`文件,具体操作如下: 1. **配置`&lt;build&gt;`部分**:在`...

    Maven自定义plugin

    Maven通过插件系统提供了丰富的功能,而“Maven自定义plugin”则是指开发者根据自身需求定制的Maven插件。这篇文章将深入探讨如何创建和使用自定义的Maven插件。 首先,理解Maven插件的工作原理至关重要。Maven插件...

    Maven打包实战.zip

    此外,还可以通过“运行配置”创建Maven构建,自定义打包命令和参数。 在“打包实战”中,你可能会学到如何处理依赖、解决版本冲突、配置插件、以及如何生成包含所有依赖的可执行JAR(fat JAR)。这通常通过`maven-...

    maven+bat打包

    在"maven+bat打包"的场景中,POM.xml文件中会包含一个特定的插件配置,用于执行自定义的批处理脚本。这个脚本通常位于项目目录下,用于执行一系列自动化任务,如清理、复制文件、压缩文件等。例如,我们可能会配置`...

    maven plugin打包下载

    Maven Plugin则是Maven中的一个重要组成部分,用于执行特定的任务,如编译、测试、打包、部署等。本篇文章将深入探讨Maven Plugin及其打包下载的相关知识点。 一、Maven Plugin简介 Maven Plugin是Maven中的插件,...

    reportng源码(maven编译打包)

    在这个“reportng源码(maven编译打包)”项目中,我们可以看到ReportNG的源代码,它是使用Maven构建系统进行管理的。Maven是一个广泛使用的Java项目管理和集成工具,它帮助开发者自动化构建、依赖管理和项目信息管理...

    自定义maven插件的实现

    然而,有时候Maven的内置插件无法满足特定的需求,这时就需要自定义Maven插件来扩展其功能。本篇文章将深入探讨如何实现自定义的Maven插件。 首先,了解Maven插件的基本结构至关重要。一个Maven插件通常由一组Mojo...

    Maven 生成打包可执行jar包的方法步骤

    Maven提供了多种打包插件,如maven-jar-plugin(默认的JAR打包插件)、maven-shade-plugin(用于生成可执行的fat JAR)和maven-assembly-plugin(支持自定义打包)。在这个场景中,我们将使用maven-jar-plugin和...

    maven打包过程执行自定义插件包

    本篇文章将详细讲解如何在Maven打包过程中执行自定义插件包,以此来满足特定的项目需求。 首先,我们需要了解Maven的生命周期。Maven的生命周期分为三个阶段:clean(清理)、default(构建)和site(站点)。在...

    使用Maven assembly打多个自定义包及War包简介

    本篇文章将深入探讨如何使用Maven Assembly插件来创建多个自定义包以及War包,这对于Java开发者来说尤其重要,因为它使得项目打包和分发变得更加方便。 Maven是一个强大的Java项目管理工具,它通过配置文件POM...

    maven打包dubbo服务接口(maven-assembly-plugin)

    Maven作为项目管理和构建工具,可以帮助我们自动化构建、打包和依赖管理。本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven...

    maven打包源码

    - **自定义源码包名称**:除了基本的源码打包功能外,`maven-source-plugin`还允许你自定义生成的源码包的名称,这对于大型项目或具有复杂依赖结构的项目来说非常有用。 - **源码排除**:有时候,你可能不希望某些...

    maven多模块打包pom文件

    同时,可以通过插件自定义构建过程,比如使用`maven-jar-plugin`生成JAR,`maven-source-plugin`打包源代码,或者`maven-war-plugin`构建WAR包。 7. **继承与聚合**:Maven的多模块项目既可以是继承关系(子模块...

Global site tag (gtag.js) - Google Analytics