windows建立网站,购买域名做销售网站可以吗,技术支持 东莞网站建设 轴承,网站服务器的采购方案最近在客户现场部署项目#xff0c;有两套环境#xff0c;无法连接互联网#xff0c;两套环境之间也是完全隔离#xff0c;于是问题就来了#xff0c;每次都要远程到公司电脑改完代码#xff0c;打包#xff0c;通过网盘#xff08;如果没有会员#xff0c;上传下载慢…最近在客户现场部署项目有两套环境无法连接互联网两套环境之间也是完全隔离于是问题就来了每次都要远程到公司电脑改完代码打包通过网盘如果没有会员上传下载慢或者远程工具传输再用u盘拷贝到客户电脑一个包400多Mb所有的代码和依赖包以及配置文件都打在了一个jar包里面传输一次10分钟效率太低了于是翻越资料找到一中更优雅的打包方式每次只需要更新改过的包和配置文件即可大大减少传输大小。
我们先看看nacos的压缩包解压开来的效果 可以看到是一种很标准的打包方式解压开来的文件夹都能够见名知意下面是我改完maven打包方式之后的效果实际过程中也可以根据需要把脚本放到bin目录里面只是我图简单把停止和启动都写在了一个脚本里面这么打包的好处是后续改了代码和配置只需要替换相应的jar包和配置文件即可而不用全量更新我们自己写的代码jar包通常都是kb单位远程桌面传输起来也很快 conf配置文件目录里面包含了logback配置文件项目依赖的application.yml等配置文件 lib:依赖的jar包括第三方依赖包和自己项目里面的common,api等 gisadmin-boot.jarspringboot启动类所在的jar包start.sh启动脚本里面启动命令指定的就是这个jar
start.sh:启动脚本
ps -ef | grep gisadmin-boot | grep -v grep | awk {print $2} | xargs -r kill -9# 等待几秒以确保进程被正确杀死
sleep 2# 确保日志目录存在
mkdir -p ./logs# 绝对路径启动 Java
nohup java -Duser.timezoneAsia/Shanghai -Dfile.encodingutf-8 -cp ./gisadmin-boot.jar com.daspatial.gis.EarthApplication ./logs/gisadmin.log 21 sleep 2
下面就是关键的maven配置了只写关键变更部分
1、不同的环境激活不同的配置在maven打包命令执行的时候指定比如mvn clean compile package -Pdev -DskipTests其中-Pdev就是激活dev环境的配置 profilesprofileiddev/idpropertiesprofileActivedev/profileActive/propertiesactivationactiveByDefaulttrue/activeByDefault/activation/profileprofileidwutiegaw/idpropertiesprofileActivewutiegaw/profileActive/properties/profileprofileidwutie/idpropertiesprofileActivewutie/profileActive/properties/profileprofileidprod/idpropertiesprofileActiveprod/profileActive/properties/profile/profiles
2、build节点配置
build!--最终打出来的包名--finalName${project.artifactId}/finalName!--java代码源文件目录--sourceDirectory${basedir}/src/main/java/sourceDirectory!--资源文件目录主要是配置文件也就是src/main/resources目录--resourcesresourcedirectory${basedir}/src/main/java/directoryfilteringtrue/filteringexcludesexclude**/*.java/exclude/excludes/resourceresourcedirectory${basedir}/src/main/resources/directoryexcludesexclude**/assembly.xml/exclude/excludes/resourceresourcedirectory${basedir}/src/main/env/${profileActive}/directory/resource/resourcespluginspluginartifactIdmaven-compiler-plugin/artifactIdversion3.13.0/versionconfigurationsource1.8/sourcetarget1.8/target/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdconfigurationarchivemanifestEntries!--配置文件独立输出到conf目录--Class-Pathconf//Class-Path/manifestEntriesmanifest!--依赖包独立输出到lib目录--addClasspathtrue/addClasspathclasspathPrefixlib//classpathPrefix/manifest/archiveexcludes!--这里是为了防止配置文件被打进启动类所在的jar里面--exclude**/*.yml/excludeexclude**/*.xml/exclude/excludes/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-assembly-plugin/artifactIdversion2.6/versionconfigurationappendAssemblyIdfalse/appendAssemblyIddescriptors!--assembly插件配置文件--descriptor${basedir}/src/main/resources/assembly.xml/descriptor/descriptors/configurationexecutionsexecutionidmake-assembly/idphasepackage/phasegoalsgoalsingle/goal/goals/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-deploy-plugin/artifactIdconfigurationskiptrue/skip/configuration/plugin/plugins/build
3、assembly插件配置文件assembly.xml:
?xml version1.0?
assembly xmlnshttp://maven.apache.org/ASSEMBLY/2.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsdid${version}/idformats!-- zip,tar,tar.gz,tar.bz2,jar,dir,war --formattar.gz/format/formatsincludeBaseDirectorytrue/includeBaseDirectoryfileSetsfileSet!--源代码中的bin目录输出到压缩包根目录--directoryMode0777/directoryModedirectory${basedir}/src/bin/directoryfileMode0777/fileModeoutputDirectory./outputDirectorylineEndingunix/lineEnding/fileSetfileSet!--激活的profile配置文件输出到conf目录--directory${basedir}/src/main/env/${profileActive}/directoryoutputDirectoryconf/outputDirectory/fileSet/fileSetsfilesfile!--logback配置文件输出到conf目录--source${basedir}/src/main/resources/logback.xml/sourceoutputDirectoryconf/outputDirectory/filefilesource${basedir}/src/main/resources/banner.txt/sourceoutputDirectoryconf/outputDirectory/filefile!--启动类jar输出到压缩包根目录--source${basedir}/target/${project.artifactId}.jar/sourceoutputDirectory./outputDirectory/file/filesdependencySetsdependencySetuseProjectArtifacttrue/useProjectArtifactoutputDirectorylib/outputDirectoryexcludesexclude${project.groupId}:${project.artifactId}/exclude/excludes/dependencySet/dependencySets
/assembly
项目目录结构如下 改完之后可能会出现spring无法加载配置文件只需要右键选中dev环境加入到资源目录即可也就是默认激活dev环境配置