maven-assembly-plugin 打包简单案例
简单项目
1. maven netty lomback
包含项目依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 | <dependencies> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.9.Final</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency> </dependencies> |
2. 几个打包插件使用
依赖管理、依赖剔除处理、启动函数处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>lib/</extdirs> </compilerArguments> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <archive> <manifest> <mainClass>com.dalong.netty.MyMain</mainClass> </manifest> </archive> <!--<descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs>--> <descriptors><!--描述文件路径--> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath> true </addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.dalong.netty.MyMain</mainClass> </manifest> </archive> <excludes> <exclude>**/*.conf</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases> false </overWriteReleases> <overWriteSnapshots> false </overWriteSnapshots> <overWriteIfNewer> true </overWriteIfNewer> <excludeScope>provided</excludeScope> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven-plugin</artifactId> <version>1.16.18.0</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>delombok</goal> </goals> </execution> </executions> </plugin> </plugins> </build> |
3. assembly.xml 文件定义
文件别名、配置拷贝
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <assembly xmlns= "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd" > <id>mydemo</id> <includeBaseDirectory> true </includeBaseDirectory> <formats> <format>zip</format> </formats> <fileSets> <fileSet> <directory>${project.basedir}\src\main\resources</directory> <outputDirectory>conf/</outputDirectory> </fileSet> <fileSet> <directory>${project.basedir}\target\lib</directory> <outputDirectory>lib/</outputDirectory> </fileSet> </fileSets> <files> <file> <outputDirectory>/</outputDirectory> <source>${project.basedir}\target\websocket-server-0.0.1-SNAPSHOT.jar</source> <destName>websocket-server.jar</destName> </file> </files> </assembly> |
4. 打包构建
1 | mvn clean compile package |
5. 参考说明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2015-07-19 jQuery全屏滚动插件fullPage.js