大疆上云APIdemo打包配置
大疆上云api的demo程序默认不能打包成JAR包,平台有两个模块,sample和cloud-sdk,前者是主程序,后者是封装的基层库,打包配置文件有三个分别是最外层的pom.xml和两个模块内部的两个pom.
大疆官网提供的Spring Boot项目默认不配置打包插件,通常是为了保持灵活性和避免与用户现有项目结构冲突。下面我会帮你分析原因,并给出一个简单可靠的修改方案。
🧩 默认不配置打包的原因
大疆官方POM可能没有配置 spring-boot-maven-plugin,主要是出于以下几点考虑:
-
项目类型不明确:父POM可能被多个子模块继承,某些模块可能是普通的JAR库(不需要可执行JAR),而只有包含主类的模块(如你的
sample)才需要打包成可执行JAR。直接在父POM配置可能会影响其他模块。 -
自定义需求:用户的项目可能具有特殊的打包需求(比如需要包含外部资源、特定的目录结构等),官方提供一个"干净"的POM让用户根据自己的情况配置更为稳妥8。
-
依赖管理优先:官方提供的POM首要任务是确保依赖版本和范围的正确管理,使项目能够正确编译210。打包部署通常被视为后续的、可由用户定制的步骤。
🔧 简单修改实现打包
要让你的sample模块能够打包成可执行的JAR,最关键的一步就是在sample模块的POM(即你提供的pom3.xml)中添加 spring-boot-maven-plugin 插件。
-
定位你的
sample模块的POM文件:找到你项目中的sample/pom.xml。 -
添加打包插件配置:在
<project>标签下的<build>部分,添加如下插件配置。如果已有<build>标签,则将<plugins>部分合并进去即可:
<project>
<!-- ... 其他配置 ... -->
<build>
<plugins>
<!-- 这是Spring Boot项目打包成可执行JAR的核心插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.12</version> <!-- 建议与父POM中Spring Boot版本一致 -->
<executions>
<execution>
<goals>
<!-- 这个goal会将所有依赖打包并生成可执行的JAR -->
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 如果你的主启动类不是自动识别的,请在此指定 -->
<!-- <mainClass>com.dji.sample.Application</mainClass> -->
</configuration>
</plugin>
</plugins>
</build>
</project>
-
执行打包命令:在项目根目录下打开终端,执行以下命令:
mvn clean package -DskipTests
完成以上步骤后,正常情况下会在 sample/target/ 目录下生成一个可执行的JAR文件(通常名称类似于 sample-1.10.0.jar),你可以使用 java -jar your-jar-name.jar 来运行它。
💎 重要提醒
-
这个修改是最小且必需的。
spring-boot-maven-plugin的repackagegoal 是生成可执行JAR的关键8。 -
确保插件版本与父POM中管理的Spring Boot版本(在你的文件里是2.7.12)保持一致,可以避免潜在的兼容性问题。
-
大部分情况下,插件能自动找到带有
main方法的启动类。如果打包后运行报错提示找不到主类,再取消注释上面的<mainClass>配置并填写正确的全类名。

浙公网安备 33010602011771号