参考材料:
1、https://www.cnblogs.com/littleatp/p/9278517.html
2、https://www.jianshu.com/p/3bd850fcb488
项目的目录结构:(忽略掉target目录)
helloWorld ├── pom.xml └── src └── main ├── assemble │ ├── package.xml │ └── start.sh ├── java │ └── org └── resources ├── application-dev.yml ├── application-prod.yml ├── application-test.yml └── application.yml
目标 zip 文件的结构:
. ├── config │ ├── application-dev.yml │ └── application.yml ├── helloWorld-0.0.1.jar └── start.sh
pom.xml
<!-- build start --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <finalName>helloWorld</finalName> <finalName>${project.artifactId}-${project.version}</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assemble/package.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>bundle</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <!-- build end --> <profiles> <profile> <!-- mvn clean package -Pdev --> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <environment>dev</environment> </properties> </profile> <profile> <!-- mvn clean package -Ptest --> <id>test</id> <properties> <environment>test</environment> </properties> </profile> <profile> <!-- mvn clean package -Pprod --> <id>prod</id> <properties> <environment>prod</environment> </properties> </profile> </profiles>
dev/package.xml: 这里只给出了dev 测试环境目录下面的配置,其他的test、prod的在pom.xml的profile中添加一下即可。
<assembly 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/assembly-1.0.0.xsd"> <id>package</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <!-- shell file --> <!-- gump job file: ${environment} from pom.xml --> <fileSet> <directory>src/main/assemble</directory> <includes> <include>start.sh</include> </includes> <outputDirectory>/</outputDirectory> </fileSet> <!-- config file: ${environment} from pom.xml --> <fileSet> <directory>src/main/resources</directory> <includes> <include>application.yml</include> <include>application-${environment}.yml</include> </includes> <outputDirectory>/config</outputDirectory> </fileSet> <!-- executable jar --> <fileSet> <directory>${project.build.directory}</directory> <includes> <include>${project.artifactId}-${project.version}.jar</include> </includes> <outputDirectory>/</outputDirectory> </fileSet> </fileSets> </assembly>
打包命令:
mvn clean package -Pdev #mvn clean package -Ptest #mvn clean package -Pprod
相关推荐
总的来说,`maven-assembly-plugin`是Maven构建过程中的一个重要工具,它帮助开发者灵活地定制打包过程,适应不同环境的需求。结合Spring Boot项目,我们可以更高效地管理和部署应用程序,提高开发和运维的效率。
本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven有多个生命周期阶段,如`clean`、`compile`、`test`、`package`等,每个...
maven-assembly-plugin maven-jar-plugin spring-boot-maven-plugin maven-dependency-plugin maven-resources-plugin CHANGELOG 1.maven-assembly-plugin 配置assembly.xml文件路径 <plugin> <artifactId>maven-...
1. **依赖打包到外部**:使用`maven-assembly-plugin`或`maven-shade-plugin`,我们可以将依赖打包到一个单独的lib目录下。比如,通过`maven-assembly-plugin`的`dependencySet`配置,我们可以指定哪些依赖应该被...
"SpringBoot使用Maven打包异常-引入外部jar的问题及解决方案" 本文主要介绍了SpringBoot使用Maven打包异常-引入外部jar的问题,并提供了相应的解决方案。下面是对标题、描述、标签和部分内容的详细解释: 标题:...
在Maven中实现这个功能,我们需要借助maven-assembly-plugin或者maven-war-plugin,但更常见的是使用maven-resources-plugin和maven-compiler-plugin配合yuicompressor-maven-plugin。以下是一个详细的步骤说明: 1...
在本案例中,我们将利用Maven的`maven-assembly-plugin`或`maven-shade-plugin`来将Java应用打包成可执行的JAR文件,然后通过第三方工具转换为exe格式。 步骤一:配置Maven 我们需要在项目的`pom.xml`文件中添加`...
2. **构建可执行jar**: 使用`maven-assembly-plugin`,你可以指定一个`assembly.xml`文件,其中定义了如何打包jar,包括添加依赖库、设置主类等。确保设置`mainClass`属性为你的Spring Boot应用的入口点。 3. **...
对于Maven,可以使用`maven-assembly-plugin`或`maven-shade-plugin`。对于Gradle,可以使用`shadow`插件。这些插件允许我们将多个jar合并成一个单一的jar,并解决可能的类冲突。 4. **处理类冲突** 当多个jar包含...
为了解决这个问题,需要使用 maven-assembly-plugin 插件。 ```xml <plugin> <artifactId>maven-assembly-plugin <!--不添加AssemblyId--> <appendAssemblyId>false <!--配置打包的时候一并打包依赖jar--> ...
首先,在Spring Boot项目的pom.xml中,我们需要添加JavaFX和maven-jpackage或者maven-assembly-plugin的相关依赖和配置。这可能包括指定JavaFX库、设置主类和应用信息等。 2. **构建可执行JAR** 使用Maven的`mvn ...
总结,Spring Boot的多模块打包涉及到项目结构设计、Maven配置、Spring Boot Maven Plugin的使用以及打包验证等多个环节。通过合理组织和打包,我们可以更好地管理Spring Boot项目,提高开发效率和项目质量。在实际...
此外,Maven Profile还可以与其他Maven插件集成,例如Maven Assembly Plugin和Maven Jar Plugin等,来实现更加复杂的打包和部署操作。 Maven Profile的优点包括: * 可以轻松地在不同的环境中切换配置文件 * 避免...
* 如何使用maven-assembly-plugin插件生成zip文件 * 如何配置assembly.xml文件以便生成zip文件 * 如何使用shell脚本来启动和停止Spring Boot应用程序 * 如何使用jps命令来检查应用程序的状态 * 如何在Linux环境中...
对于生成独立JAR,Maven可以使用`spring-boot-maven-plugin`,Gradle则有`bootJar`任务。独立JAR包含了所有依赖,可以直接运行,无需额外配置类路径。 在配置过程中,我们需要确保所有的依赖项被正确地包含在打包...
之后,确保所有使用的Maven插件引用了这个版本,例如Maven Compiler Plugin或Spring Boot Maven Plugin。这样可以避免由于插件版本不明确或不匹配而引发的错误。 在Spring Boot项目中,经常遇到的其他问题可能包括...
5. **构建与打包**:在聚合工程中,可以使用Maven的`assembly插件`或`spring-boot-maven-plugin`来打包所有子项目。前者可以生成一个包含所有子项目JAR或WAR的单一可执行文件,后者则能直接创建可执行的JAR,方便...