增加打瘦包的支持,打包后仅需160kb

This commit is contained in:
sulv 2024-10-12 22:38:34 +08:00
parent fc2a9b597e
commit 9ea81b472b
2 changed files with 78 additions and 7 deletions

82
pom.xml
View File

@ -47,8 +47,43 @@
</dependency>
</dependencies>
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-jar-plugin</artifactId>-->
<!-- <version>3.2.0</version>-->
<!-- <configuration>-->
<!-- <archive>-->
<!-- <manifest>-->
<!-- <mainClass>com.ly.VideoInferenceApp</mainClass> &lt;!&ndash; 将MainClass替换为你的主类 &ndash;&gt;-->
<!-- </manifest>-->
<!-- </archive>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- &lt;!&ndash; 使用maven-shade-plugin来打包所有依赖 &ndash;&gt;-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-shade-plugin</artifactId>-->
<!-- <version>3.2.1</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>shade</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
<!--如果希望打包小一点可以打瘦包 瘦包仅160kb-->
<!--使用方法,注释上面的构建 使用以下构建需要将target生成的lib目录放到jar包运行的同级-->
<build>
<plugins>
<!-- 1. 使用 maven-jar-plugin 打包主应用程序 JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
@ -56,27 +91,62 @@
<configuration>
<archive>
<manifest>
<mainClass>com.ly.VideoInferenceApp</mainClass> <!-- 将MainClass替换为你的主类 -->
<mainClass>com.ly.VideoInferenceApp</mainClass> <!-- 替换为你的主类 -->
<!-- 动态生成 Class-Path -->
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<!-- 使用maven-shade-plugin来打包所有依赖 -->
<!-- 2. 使用 maven-dependency-plugin 复制所有运行时依赖到 lib 目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>runtime</includeScope>
<includeTypes>jar</includeTypes>
</configuration>
</execution>
</executions>
</plugin>
<!-- 3. 使用 maven-resources-plugin 复制原生库 文件 到 lib 目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-native-libs</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/lib</directory> <!-- 项目根目录下的 lib 目录 -->
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -35,8 +35,9 @@ public class VideoPlayer {
nu.pattern.OpenCV.loadLocally();
String OS = System.getProperty("os.name").toLowerCase();
if (OS.contains("win")) {
// 使用发布版 FFmpeg DLL
System.load(System.getProperty("user.dir") + "\\lib\\win\\opencv_videoio_ffmpeg470_64.dll");
}else if (OS.contains("linux")) {
}
}