- pom.xml: - 添加finalName配置去除版本号 - maven-jar-plugin排除资源文件 - 禁用spring-boot-maven-plugin repackage - 各服务移除冗余的plugin配置 - assembly.xml: - 主JAR放根目录(仅服务代码) - lib目录放依赖JAR - start.sh: - 支持java -cp classpath模式启动 - 从service.properties读取MAIN_CLASS - 向后兼容fat jar模式 - service.properties: - 所有服务添加MAIN_CLASS配置 优势: - 主JAR从131MB缩小到103KB - 多服务部署可共享lib目录 - 资源文件外置便于修改
71 lines
2.4 KiB
XML
71 lines
2.4 KiB
XML
<assembly>
|
||
<id>bin</id>
|
||
<formats>
|
||
<format>tar.gz</format>
|
||
</formats>
|
||
<includeBaseDirectory>true</includeBaseDirectory>
|
||
|
||
<fileSets>
|
||
<!-- bin目录 - 启动脚本(引用根目录scripts) -->
|
||
<fileSet>
|
||
<directory>${project.basedir}/../scripts</directory>
|
||
<outputDirectory>bin</outputDirectory>
|
||
<includes>
|
||
<include>start.sh</include>
|
||
<include>stop.sh</include>
|
||
<include>restart.sh</include>
|
||
<include>status.sh</include>
|
||
</includes>
|
||
<fileMode>0755</fileMode>
|
||
</fileSet>
|
||
|
||
<!-- conf目录 - 环境变量配置 -->
|
||
<fileSet>
|
||
<directory>${project.basedir}/../scripts</directory>
|
||
<outputDirectory>conf</outputDirectory>
|
||
<includes>
|
||
<include>env.properties</include>
|
||
</includes>
|
||
<fileMode>0644</fileMode>
|
||
</fileSet>
|
||
|
||
<!-- conf目录 - 配置文件(排除docker相关) -->
|
||
<fileSet>
|
||
<directory>src/main/resources</directory>
|
||
<outputDirectory>conf</outputDirectory>
|
||
<includes>
|
||
<include>application.yml</include>
|
||
<include>logback-spring.xml</include>
|
||
<include>bootstrap.yml</include>
|
||
<include>service.properties</include>
|
||
</includes>
|
||
<excludes>
|
||
<!-- 排除docker相关配置 -->
|
||
<exclude>application-docker.yml</exclude>
|
||
<exclude>bootstrap-docker.yml</exclude>
|
||
</excludes>
|
||
<fileMode>0644</fileMode>
|
||
</fileSet>
|
||
</fileSets>
|
||
|
||
<!-- 主JAR文件放到根目录(只包含服务代码,不包含资源和依赖) -->
|
||
<files>
|
||
<file>
|
||
<source>${project.build.directory}/${project.artifactId}.jar</source>
|
||
<outputDirectory>/</outputDirectory>
|
||
<destName>${project.artifactId}.jar</destName>
|
||
<fileMode>0644</fileMode>
|
||
</file>
|
||
</files>
|
||
|
||
<!-- lib目录 - 所有依赖JAR(不包含项目自身) -->
|
||
<dependencySets>
|
||
<dependencySet>
|
||
<outputDirectory>lib</outputDirectory>
|
||
<useProjectArtifact>false</useProjectArtifact>
|
||
<scope>runtime</scope>
|
||
<fileMode>0644</fileMode>
|
||
</dependencySet>
|
||
</dependencySets>
|
||
</assembly>
|