Maven Assembly构建发布包

       maven的出现更近一步的加深了大家对模块化开发的热忱,如何更好的打包,可以让我们工作更加高效,maven提供的Assembly插件能帮你构建一个完整的发布包,下面基于一个实例来发布一个zip包。

gserver项目的名称,包含如下模块:

服务:
gserver-gate:网关服务器
gserver-logic:逻辑服务器

公用类:
gserver-core:核心类
gserver-redis:redis缓存管理
gserver-services:逻辑类
gserver-db:mysql数据库管理

打包:
gserver-distribute:打包程序,路径/target目录下

整个项目包含了2个进程以及4个模块,4个公共模块分别给2个进程使用;

整个打包的思路就是:每个模块先各自独立打包,然后通过另外一个模块进行汇总

我们需要提供了一个专门打包的模块,既项目中出现的gserver-distribute模块,它本身是一个空模块,里面只是提供了Assembly插件需要的xml文件,当然也可能提供一些公共的配置文件。

既然gserver-distribute是一个汇总模块,所有要保证gserver-distribute是最后一个执行模块,如下所示:

<modules>
	<module>gserver-core</module>
	<module>gserver-redis</module>
	<module>gserver-services</module>
	<module>gserver-gate</module>
	<module>gserver-logic</module>
	<module>gserver-db</module>
	<module>gserver-distribution</module>
</modules>

gserver-distribute出现在所有模块的最下面;下面看一下gserver-distribute使用Assembly插件进行打包。

需要提供一个Assembly插件打包的配置文件:assembly.xml,然后再pom.xml进行配置

pom.xml配置使用插件如下:

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-assembly-plugin</artifactId>
			<version>2.4</version>
			<configuration>
				<descriptors>
					<descriptor>assembly.xml</descriptor>
				</descriptors>
			</configuration>
			<executions>
				<execution>
					<id>make-assembly</id>
					<phase>package</phase>
					<goals>
						<goal>single</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

下面再看一下assembly.xml配置文件:

<assembly>
	<id>bin</id>
	<!-- 最终打包成一个用于发布的zip文件 -->
	<formats>
		<format>zip</format>
	</formats>

	<!-- Adds dependencies to zip package under lib directory -->
	<dependencySets>
		<dependencySet>
			<!-- 不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录 -->
			<useProjectArtifact>false</useProjectArtifact>
			<outputDirectory>lib</outputDirectory>
			<unpack>false</unpack>
			<!-- 排除指定的模块 -->
			<excludes>  
                <exclude>com.gserver:gserver-logic</exclude>  
                <exclude>com.gserver:gserver-gate</exclude>  
            </excludes>  
		</dependencySet>
	</dependencySets>

	<fileSets>
		<!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 -->
		<fileSet>
			<directory>../gserver-logic/shell</directory>
			<outputDirectory></outputDirectory>
			<includes>
				<include>*</include>
			</includes>
		</fileSet>
		<fileSet>
			<directory>../gserver-gate/shell</directory>
			<outputDirectory></outputDirectory>
			<includes>
				<include>*</include>
			</includes>
		</fileSet>
		<fileSet>
			<directory>../gserver-distribution/shell</directory>
			<outputDirectory></outputDirectory>
			<includes>
				<include>*</include>
			</includes>
		</fileSet>

		<fileSet>
			<directory>../gserver-logic/target</directory>
			<outputDirectory></outputDirectory>
			<includes>
				<include>*.jar</include>
			</includes>
		</fileSet>
		<fileSet>
			<directory>../gserver-gate/target</directory>
			<outputDirectory></outputDirectory>
			<includes>
				<include>*.jar</include>
			</includes>
		</fileSet>

		<fileSet>
			<directory>../gserver-logic/logic-config</directory>
			<outputDirectory>logic-config</outputDirectory>
			<includes>
				<include>*</include>
			</includes>
		</fileSet>
		<fileSet>
			<directory>../gserver-gate/gate-config</directory>
			<outputDirectory>gate-config</outputDirectory>
			<includes>
				<include>*</include>
			</includes>
		</fileSet>
	</fileSets>
</assembly>  

主要的设置大概就这些,更加详细的:https://github.com/ksfzhaohui/gserver

整个包最后将打成一个zip包,当然还支持其他很多格式,更多细节可以去看Maven Assembly插件,这里简单介绍一下整个流程。

最后的zip包:gserver-distribution-0.0.1-SNAPSHOT-bin.zip,内部如下图所示:

好了,这时候你可以直接丢给客户端,测试,策划,让他们一键启服(all-startup.bat),一键停服(all-shutdown.bat)

转载于:https://my.oschina.net/OutOfMemory/blog/685456

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值