spring boot多模块项目的自动化部署

最近一直在看一些多模块项目的构建,其实多模块基本面可以这么理解下,就是将将其它的项目作为依赖导入到一个项目下。但是为了一次性构建所有模块,可以通过一个父模块实现,那么父模块中的核心配置如下。

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
		<!-- 一次性构建多个模块 -->
	    <modules>
        <module>platform-common</module> <!-- 公共模块 -->
         <module>platform-system</module>
    </modules>

作为spring boot项目,我们知道测试时,有一个启动类,那么我们通过多模块打成的jar包,通过java -Xmx512m Xms512m xxx.jar 启动时,需要一个启动入口,那么这个入口,通过如下配置

 <plugin>
                <!-- The plugin rewrites your manifest -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.RELEASE</version>
                <configuration><!-- 指定该Main Class为全局的唯一入口 -->
                    <mainClass>com.platform.SystemApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                        <!--可以生成不含依赖包的不可执行Jar包-->
                        <!-- configuration>
                          <classifier>exec</classifier>
                        </configuration> -->
                    </execution>
                </executions>
            </plugin>

将应用打包成可执行性的jar包还需要如下插件

	<!--将应用打包为可执行的jar包或war包  -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!-- 跳过单元测试 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>

至此我们的项目就可以实现打包成jar包部署了。

但是我们要实现自动化部署到服务器,可以通过wagon-maven-plugin插件,配置有两个地方,首先配置

<!-- 使用wagon-maven-plugin 自动部署项目的前提 -->
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>2.8</version>
			</extension>
		</extensions>

另外部署插件

<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>wagon-maven-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<fromFile>target/${pack-name}</fromFile>
					<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
					<commands>
						<command>pkill -f ${pack-name}</command>
						<command>rm -f ${service-path}/renren.log</command>
						<command><![CDATA[nohup java -jar ${service-path}/${pack-name} > ${service-path}/renren.log 2>&1 & ]]></command>
						<command><![CDATA[netstat -nptl]]></command>
						<command><![CDATA[ps -ef | grep java | grep -v grep]]></command>
					</commands>
					<!-- 运行命令 mvn clean package wagon:upload-single wagon:sshexec -->
					<displayCommandOutputs>true</displayCommandOutputs>
				</configuration>
			</plugin>

我们发现上面有很多参数变量,那么这些参数变量是在哪配置的呢?

在properties中配置,如下

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<!--wagon plugin 配置-->
		<service-path>/www/</service-path>
		<pack-name>${project.artifactId}.jar</pack-name>
		<remote-addr>127.0.0.1</remote-addr>
		<remote-username>root</remote-username>
		<remote-passwd>xxxxxx</remote-passwd>
	</properties>

至此所有配置都讲解结束

参考文档:

http://blog.csdn.net/mn960mn/article/details/49560003



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值