当前位置: 首页 > news >正文

台州知名的网站建设wordpress安装完不显示

台州知名的网站建设,wordpress安装完不显示,怎样用阿里云建设网站,群晖wordpress主机Maven笔记#xff08;二#xff09;-进阶使用 一、Maven分模块开发 分模块开发对项目的扩展性强#xff0c;同时方便其他项目引入相同的功能。 将原始模块按照功能拆分成若干个子模块#xff0c;方便模块间的相互调用#xff0c;接口共享(类似Jar包一样之间引用、复用)…Maven笔记二-进阶使用 一、Maven分模块开发 分模块开发对项目的扩展性强同时方便其他项目引入相同的功能。 将原始模块按照功能拆分成若干个子模块方便模块间的相互调用接口共享(类似Jar包一样之间引用、复用)。 开发步骤 创建Maven项目书写模块代码 分模块开发需要先针对模块功能进行设计再进行编码。不会先将工程开发完毕然后进行拆分根据自己需求分模块构建各模块功能形成一个独立的资源其它模块使用时使用依赖的模式进行引用。 对应在主模块的 pom.xml 文件中使用 dependency 标签引入对应待使用的相关maven项目依赖! 通过Maven指令安装模块到本地仓库install指令 mvn install这样才能使得在其它模块中进行 compile操作时才不会找不到本地仓库下的对应模块依赖jar 团队内部开发需要发布模块功能到团队内部可共享的仓库中私服 二、依赖管理 2.1 依赖传递 如果项目中依赖了某个资源A这个资源A中依赖了其它资源B。那么在该项目中已能直接使用资源B。 依赖之间存在传递性传递性分为 直接依赖中当前项目中通过依赖配置建立的依赖关系间接依赖被资源的资源如果依赖其他资源当前项目就间接依赖其他资源 依赖传递冲突问题 路径优先当依赖中出现相同的资源时层级越深优先级越低哦层级越浅优先级越高。(eg:上图中的 2度资源优先级高于3度资源)声明优先当资源在相同层级被依赖时配置顺序靠前的覆盖配置顺序靠后的。(eg上图中的两个3度资源谁先考前就使用谁)特殊优先pom配置文件中当同级配置了相同资源的不同版本后配置的覆盖先配置的。 在IDEA 可以查看项目中的依赖关系图 maven -- show dependencies 2.2 可选依赖 optional A依赖BB依赖C如果B不想将C依赖对A进行开发或者是C想对外隐藏自己的依赖关系可以通过 optional true /optional标签来实现对C依赖的可选 dependencygroupIdcom.itheima/groupIdartifactIdmaven_03_pojo/artifactIdversion1.0-SNAPSHOT/version!--可选依赖是隐藏当前工程所依赖的资源隐藏后对应资源将不具有依赖传递性--optionaltrue/optional /dependency可以理解为B中的依赖不在进行传递操作 项目A依赖B资源时如果也使用了B中传递依赖C时如果B资源中的该C资源设置为optionaltrue/optional 则项目A中还需要在单独引入该隐藏的资源[隐藏自己的依赖使依赖不传递 不透明] 2.3 排除依赖 exclusions 当A依赖B、B依赖C如果A中不想将B依赖中的C依赖引入进项目则可以通过排除依赖谁主动断开依赖的资源被排除的资源无需确定版本只需要指定 groupId、artifactId 即可 dependencygroupIdcom.itheima/groupIdartifactIdmaven_04_dao/artifactIdversion1.0-SNAPSHOT/version!--排除依赖是隐藏当前资源对应的依赖关系--exclusionsexclusiongroupIdlog4j/groupIdartifactIdlog4j/artifactId/exclusionexclusiongroupIdorg.mybatis/groupIdartifactIdmybatis/artifactId/exclusion/exclusions /dependency刷新一下 maven 即可排除[主动断开依赖的资源 不需要] 三、继承与聚合 3.1 聚合工程 modules 聚合将多个模块组织成一个整体同时进行整个项目构建的过程称为聚合 聚合工程通常是一个不具有业务功能的”空“工程有且仅有一个pom文件 作用 使用聚合工程可以将多个工程编组通过对聚合工程进行构建实现所包含的模块进行同步构建当工程中某个模块发生更新变更时必须保障工程中与已更新模块关联的模块同步更新此时可以使用聚合工程来解决批量模块同步构建的问题 聚合工程开发 创建Maven模块聚合工程(父工程)的导报类型为pompackagingpom/packaging。每个maven工程都有对应的打包方式默认为jarweb工程打包方式为war设置当前聚合工程所包含管理的子模块名称 packagingpom/packaging!-- 子工程项目信息 -- modulesmoduleModule-common/modulemoduleModule-admin/modulemoduleModule-core/module /modules下图中的 Maven-Module 就是一个聚合工程用来做**工程管理管理其它模块**的做聚合的 聚合工程中所包含的模块在进行构建时会根据模块间的依赖关系设置构建顺序与聚合工程中模块的配置书写位置无关。会自动按照依赖关系进行构建先构建没有依赖关系的项目后在进行构建其它模块 参与聚合的工程无法向上感知是否参与聚合只能向下配置哪些模块参与本工程的聚合。 3.2 继承关系 parent 聚合工程出现的问题 在所以子模块中每个模块都需要配置自己的依赖资源这会导致出现很多重复配置的依赖资源。出现部分模块中出现了相同依赖的配置。当需要将项目某个依赖的版本号进行调整时(某个模块对某个资源版本号不支持时)需要满足已修改所有的子模块相关依赖都进行修改。 继承描述的是两个工程之间的关系与java中的继承相似子工程可以继承父工程中的配置信息常见于依赖关系的继承。继承的作用简化配置、减少版本冲突。 继承关系开发 创建Maven集合工程(父工程)设置打包类型为pom建议父工程打包方式设置为pom[上方聚合工程创建的方式]在父工程的pom文件中配置依赖关系子工程将沿用父工程中的依赖关系 dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.10.RELEASE/version/dependency…… /dependenciesdependencies标签中的依赖是直接沿用到子工程中全部子工程中都会统一使用。 在父工程的pom文件配置子工程中可选的依赖关系 dependencyManagementdependenciesdependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependency……/dependencies /dependencyManagement在子工程pom.xml中配置当前工程所继承的父工程 !--定义该工程的父工程-- parentgroupIdcom.itheima/groupIdartifactIdmaven_parent/artifactIdversion1.0-SNAPSHOT/version!--填写父工程的pom文件根据实际情况填写可以不写可以写--relativePath../maven_parent/pom.xml/relativePath /parent在子工程中配置使用父工程中可选依赖的坐标 父工程pom文件下dependencyManagement 标签中的依赖是提供给子工程选择使用的依赖只有在子模块pom中指定 该标签中的依赖相关信息后(注意在引用时不需要写版本号)才会沿用到子模块中 注意 子工程中使用父工程中的可选依赖时仅需要提供群组id和项目id无需提供版本版本由父工程统一提供避免版本冲突 子工程中还可以定义父工程中没有定义的依赖关系 在pom文件中该可以使用 properties 标签来定义参数统一控制依赖版本信息在对应依赖中的version标签中通过 ${表达式}来确定对应版本号四、属性中介绍 3.3 聚合与继承的区别 作用 聚合用于快速构建项目继承用于快速配置项目 相同点 聚合与继承的pom.xml文件打包方式均为pom可以将两种关系制作到同一个pom文件中 聚合与继承均属于设计型模块并无实际的模块内容。 不同点 聚合是在当前父模块中配置关系聚合可以感知到参与聚合的模块有哪些 继承是在子模块中配置关系父模块无法感知哪些子模块继承了自己。 四、属性管理 4.1 自定义属性 properties 属性的作用就是定义一个变量然后在 pom 文件中直接引用即可。 在为项目中的依赖版本控制的时候能够快速的批量引用了同一变量的依赖版本。 属性管理使用方式 首先定义properties.../properties标签在properties标签中定义变量值 在依赖中使用变量名${变量变量名称} 4.2 资源文件引用属性 resource 不太主流使用 4.2.1 子工程配置文件中引用maven变量过程 首先在 聚合工程(父工程)pom 文件中的properties标签下定义待使用的属性值 在子模块的配置文件中直接以同样方式${属性名} 引用改变了 聚合工程(父Maven)中,即使用properties标签定义了变量的pom文件中扩大Maven的控制范围。 !--配置资源文件该资源文件下以可以使用maven中的变量--resourcesresource!-- 配置文件目录 --directory${project.basedir}/src/main/resources/directory!-- 包含的文件类型 --includesinclude**/*.properties/includeinclude**/*.xml/include/includes!-- 配置过滤规则 能够识别${}格式 --filteringtrue/filtering/resource/resources4.2.2 检测配置文件引用变量是否成功 通过以上设置之后就可以直接在 子工程 的配置文件下 使用 ${变量名称} 的方式读取到 聚合工程(父工程) pom 中设置的变量数据了。 这里我们将 Module-core 模块的打包模式设置为 war 包这样打包后就能查看到 jdbc配置文件中的数据是否加载成功 通过 install操作成功之后在对应本地仓库中找到 对应 groupId 和 artifactId 下的该war包。然后 打开war包路径下的 /WEB-Inf/classses/配置文件 4.2.3 问题记录 如果 install 过程中出现如下错误 方式一 是因为 Maven在进行打war包时必须要对应工程中必须要包含 web.xml 文件。 这里就需要在对应打war包的工程中创建对应的文件即可(临时解决方案) 方式二 在对应需要打 war包 的子模块 的pom.xml 中配置 maven-war-plugin 打war插件 buildresources!--打包src/main/java下的文件--resourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringtrue/filtering/resource!--打包src/main/resources文件夹下的文件--resourcedirectorysrc/main/resources/directoryincludesinclude**/*.xml/includeinclude**/*.properties/include/includesfilteringtrue/filtering/resource/resourcespluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/portpath//path/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion3.2.3/versionconfiguration!-- 排除web.xml文件,没有web.xml文件时不报错 --failOnMissingWebXmlfalse/failOnMissingWebXml/configuration/plugin/plugins/build执行 install 操作出现找不到jar 问题 这种情况需要先在聚合工程中执行一下 compile 操作然后在执行 install 操作 install 操作后war包中不含配置文件 打war包成功之后如果子工程 Module-core 的war中没有对应的 jdbc.properties 配置文件则需要在该子工程的pom.xml 配置文件中 buidl 标签下 添加 resource 标签。 buildresources!--打包src/main/java下的文件--resourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringtrue/filtering/resource!--打包src/main/resources文件夹下的文件--resourcedirectorysrc/main/resources/directoryincludesinclude**/*.xml/includeinclude**/*.properties/include/includesfilteringtrue/filtering/resource/resources /build4.3 Maven中的其它属性 maven中的所有属性分为如下几级 自定义属性常用内置属性Setting属性Java系统属性环境变量属性 具体内容如下一般使用不上 在maven安装路径中的bin目录下执行 mvn help:system 命令 查询系统级的一些属性 在指令执行完成之后。对应的 Environment Variables 标签下对应的变量就是对应我们系统的环境变量属性 对应 System Properties 标签下的变量 对应的是 Java系统属性 使用方式于自定义变量的方式一样通过${变量名称}使用即可平时一般情况使用不到需要获取一些系统设置时可以用到。 4.4 版本管理 4.4.1 工程版本 SNAPSHOT快照版本 项目开发过程中临时输出的版本成为快照版本快照版本会随着开发的进展不断更新 RELEASE (发布版本) 项目开发到进入阶段里程碑后向团队外部发布较为稳定的版本这种版本所对应的构件文件是稳定的即便进行功能的后续开发也不会改变当前发布版本内容这种版本称为发布版本 4.4.2 发布版本 这些版本一般不会保证他的安全性eg以前的qq会出新功能提前让人尝鲜就会发布一个 beta版本表示已经经过了beta测试 alpha版beta版纯数字版 五、多环境配置与应用 5.1 多环境开发 profiles maven提供配置多种环境的设定帮助开发者使用过程中快速切换环境。 即是将一系列的自定义变量进行编组配置 同时 设置唯一 id,启动时通过命令 指定使用某组环境属性值 在父工程(聚合工程)中进行多种环境的配置 !-- 配置多环节 --profiles!-- 开发环境profile 配置 --profileidenv-dep/idpropertiesjdbc.urljdbc:mysql://localhost:3306/test/jdbc.url/properties!-- 设定为默认启动的环境 --activationactiveByDefaulttrue/activeByDefault/activation/profile!-- 生产环境配置 --profileidenv-pro/idpropertiesjdbc.urljdbc:mysql://127.1.1.1:3306/test/jdbc.url/properties/profile!-- 测试环境配置 --profileidenv-test/idpropertiesjdbc.urljdbc:mysql://127.0.0.0:3306/test/jdbc.url/properties/profile/profiles按照前面方式在聚合工程中 通过 install项目之后在对应的war包中查看 配置文件中是否正确加载了对应环境下的参数变量值 在父工程中通过mvn 指令执行执行选择指定环境配置变量 执行指令 mvn install -P 环境id需要选择对应父工程下来执行该mvn指令 mvn 指令 –P 环境定义id 执行完指令确定好环境id后 查询war包中对应配置文件数据是否正确加载 5.2 跳过测试插件 maven每次执行指令时都会执行测试过程能保证程序执行完成之后打包的正确性 但是有时候会存在一种特殊情况需要不进行测试从而直接进行打包操作 比如如下需求程序开发完成后有一个功能进行了调整现在想上线进行测试但是目前有一块功能还没调通没开发完则测试用例无法跑通就会导致打包安装无法成功这时候就行跳过测试 5.2.1 IDEA 跳过测试用例 这种方式只能跳过所有的测试 使用命令的方式跳过测试 -D表示添加参数 skipTest: 表示跳过测试 5.2.2 细粒度控制跳过测试 测试是一个插件 maven-surefire-plugin所有需要在 build标签中进行设置 excludes/excludes 排除标签 includes/includes包含标签 buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdversion2.12.4/versionconfiguration!-- 跳过测试 --skipTestsfalse/skipTests!-- 排除掉不参与测试的资源文件 --excludesexclude**/Main.java/exclude/excludes/configuration/plugin/plugins/build 六、maven私服(略 场景自己开发的资源在别人需要使用时只能通过U盘的方式进行传递 因为重要仓库不能存入私人的资源jar。这种情况下就可以通过私服的方式来实现。 类似替代重要服务器所作用范围为开发团队共享 或者 公司共享 6.1 Nexus私服 Sonatype公司的一款maven私服产品 下载地址https://help.sonatype.com/repomanager3/download 访问服务器 http://localhost:8081默认端口8081、jetty容器启动的 修改基础配置信息 安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息例如默认访问端口。 修改服务器运行配置信息 安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息例如默认占用内存空间。 启动服务器命令行启动nexus.exe /run nexus 6.2 私服资源操作流程分析 在没有私服之前我们的jar资源都是存放在maven的本地仓库之中的。私服中也有对应的仓库上传和下载都是在私服的仓库中进行打交道 可以按照资源类型创建多个仓库来使用 ssm_dao:将自己开发的资源可以放入私服中团队也可从该仓库中进行获取spring-context:第三方资源从中央服务器下载的资源。 也可以直接实现放入私服中这样所有资源都从私服中进行获取(外网禁用的情况下私服与中央服务器打交道)ssm_pojo.snapshot 存入 临时、快照版本资源 需求 上传时能实现存入那个仓库在下载时无需指定某个仓库 实习方式将所有仓库设置为一个仓库组。 6.3 私服仓库分类 宿主仓库 第三方资源指示的是中央仓库中都不含有的资源。比如 Oracle 数据库连接驱动因为涉及版权和开源所以中央仓库中没有 代理仓库不允许上传只能下载仓库组对所有仓库进行打包下载只用于下载 6.4 资源的上传与下载 私服不能随便访问需要在本地仓库中配置访问权限、上传位置(宿主地址)、下载访问权限、下载地址(仓库组地址。 以上设置都是进行设置本地仓库的配置文件maven安装地址/conf/settings.xml中进行设置 6.4.1 本地仓库访问私服权限设置 需要在本地Maven配置文件settings.xml 的servers标签下进行设置 私服中的服务器id就是对应私服中仓库的name。 在nexus中设置允许匿名下载如果不允许将不会从私服中下载依赖 6.4.2 私服的访问地址(镜像)配置 需要在本地Maven配置文件settings.xml 的mirrors标签下进行设置需要注释掉aliyun的配置。 morrors!-- 私服的访问路径 --mirrorid仓库组Id/id!-- 资源来源*表示所有 --mirrorOf*/mirrorOfurl仓库组地址/url/mirror /morrors对应仓库组中 查看管理的仓库需要将我们自建的仓库拉入仓库组 如果私服中没有对应的jar会去中央仓库下载速度很慢。可以配置让私服去阿里云中下载依赖。 6.4.3 项目工程中指定上传私服仓库 distributionManagement 需要在聚合工程的 pom文件中进行如下配置发布管理 distributionManagement!-- 发布正式版本仓库 --repository!--和maven/settings.xml中server中的id一致表示使用该id对应的用户名和密码--idheima-nexus/id!--如果jar的版本是release版本那么就上传到这个仓库根据自己情况修改--urlhttp://localhost:8081/repository/heima-releases//url/repository!-- 发布临时版仓库 --snapshotRepository!--和maven/settings.xml中server中的id一致表示使用该id对应的用户名和密码--idheima-nexus/id!--如果jar的版本是snapshot版本那么就上传到这个仓库根据自己情况修改--urlhttp://localhost:8081/repository/heima-snapshots//url/snapshotRepository /distributionManagement发布资源到私服 mvn deploy 在向私服中发布资源时间会根据版本号( SNAPSHOT / RELEASE )进行上传到正式版本仓库和临时版本仓库。 发布的资源会一直留下来不会自动主动删除 需要在私服中进行手动删除。 七、maven打包将配置文件放在jar包外[记录文件] 通过以下配置将项目 依赖jar文件、resource下的所有资源文件 全部独立出来进行项目部署操作 同时将这些文件数据 在加上 项目启动脚本将部署程序在独立压缩为一个zip。 方便项目部署操作 最终效果通过 7.4中展现出来 7.1 项目中Maven的配置 properties!-- 注意设置该属性值与springboot版本一致spring-boot-maven-plugin插件需要引用该属性与springboot版本保持一致 --spring-boot.version2.7.6/spring-boot.version /propertiesbuildplugins!--打包jar[用于将项目打包成JAR文件] --!-- [通过这些配置可以生成一个包含特定Manifest信息的JAR文件并排除不需要的资源文件最终输出到指定的目录中。] --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdconfiguration!--includeSystemScopetrue/includeSystemScope--!--不打包资源文件[jar中需要排除的文件] --excludes!-- 这里排除了所有文件*.**和所有子目录中的XML文件*/*.xml --exclude*.**/excludeexclude*/*.xml/exclude/excludes!-- 归档配置 --!-- archive标签内配置了JAR文件的Manifest文件内容。 --archivemanifest!-- [表示在Manifest文件中添加类路径] --addClasspathtrue/addClasspath!--MANIFEST.MF 中 Class-Path 加入前缀 [表示在Manifest文件的Class-Path条目中添加前缀lib/]--classpathPrefixlib//classpathPrefix!--jar包不包含唯一版本标识 [表示JAR包不包含唯一版本标识。]--useUniqueVersionsfalse/useUniqueVersions!--指定入口类 [指定了JAR文件的入口类] --mainClasscom.zdsf.u8cloudmanagementproject.U8CloudManagementProjectApplication/mainClass/manifestmanifestEntries!--MANIFEST.MF 中 Class-Path 加入资源文件目录 [指定了资源文件目录为./resources/] --Class-Path./resources//Class-Path/manifestEntries/archive!--[配置JAR文件的输出目录为Maven项目构建目录通常是target目录] --outputDirectory${project.build.directory}/outputDirectory/configuration/plugin!--拷贝依赖 copy-dependencies [这个插件用于处理项目的依赖。]--!-- [主要功能是将项目的依赖库拷贝到target/lib/目录下。这样做的好处是可以将所有依赖库集中管理便于项目的部署和运行。] --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-dependency-plugin/artifactId!-- 标签内定义了插件的执行配置。 --executions!-- 具体的执行任务 --executionidcopy-dependencies/id!-- 表示这个任务在Maven的package阶段执行 --phasepackage/phasegoals!-- goals标签内定义了要执行的目标这里的目标是copy-dependencies即拷贝依赖。 --goalcopy-dependencies/goal/goals!-- 定义了该执行任务的具体配置 --configuration!-- 指定了依赖文件的输出目录这里使用Maven属性${project.build.directory}通常是target目录后面加上/lib/子目录。 --outputDirectory${project.build.directory}/lib//outputDirectory/configuration/execution/executions/plugin!--拷贝资源文件 copy-resources --pluginartifactIdmaven-resources-plugin/artifactId!--执行配置--executions!--具体的执行任务--executionidcopy-resources/id!-- 指定该任务在 Maven 的 package 阶段执行。 --phasepackage/phasegoalsgoalcopy-resources/goal/goals!--定义了该执行任务的具体配置--configuration!-- 定义了要拷贝的资源文件 --resources!-- 指定了资源文件的源目录即 src/main/resources。 --resourcedirectorysrc/main/resources/directory/resource/resources!-- 指定了资源文件的输出目录这里使用 Maven 属性 ${project.build.directory}通常是 target 目录后面加上 /resources 子目录。 --outputDirectory${project.build.directory}/resources/outputDirectory/configuration/execution/executions/pluginplugin!-- YUI Compressor Maven压缩插件 --!-- YUI Compressor Maven 插件用于压缩项目中的 JS 文件 --groupIdnet.alchim31.maven/groupIdartifactIdyuicompressor-maven-plugin/artifactIdversion1.5.1/version!-- 这里指定了一个执行目标 compress即压缩文件。 --executionsexecutiongoalsgoalcompress/goal/goals/execution/executions!-- 开始配置插件的具体参数 --configuration!-- 读取js,css文件采用UTF-8编码 --encodingUTF-8/encoding!-- 不显示js可能的错误 [设置为 false表示不显示 JS 可能的错误。] --jswarnfalse/jswarn!-- 若存在已压缩的文件会先对比源文件是否有改动 有改动便压缩无改动就不压缩 --forcefalse/force!-- 在指定的列号后插入新行 [设置为 -1表示不插入新行] --linebreakpos-1/linebreakpos!-- 压缩之前先执行聚合文件操作 [true表示压缩之前先执行聚合文件操作]--preProcessAggregatestrue/preProcessAggregates!-- 压缩后保存文件后缀 无后缀 --nosuffixtrue/nosuffix!-- 源目录即需压缩的根目录 [指定需压缩的根目录] --sourceDirectorysrc/main/resources/static/js/sourceDirectory!-- 输出目录即压缩后的目录 --outputDirectory${project.build.directory}/resources//outputDirectoryforcetrue/force!-- 压缩js和css文件 --includesinclude**/*.js/include/includes!-- 以下目录和文件不会被压缩 --excludesexclude**/*.min.js/excludeexclude**/*.css/excludeexclude**/common/**/excludeexclude**/OrderDetails.js/excludeexclude**/ht_Administory/*.js/excludeexclude**/refund/*.js/exclude/excludes/configuration/plugin!--spring boot repackage依赖 maven-jar-plugin 打包的jar包 重新打包成 spring boot的jar包 --plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfiguration!--重写包含依赖包含不存在的依赖jar里没有pom里的依赖 --includes!-- includes标签用于指定在打包时包含的依赖。这里配置了一个groupId和artifactId都为null的依赖这实际上是一个占位符表示不包含任何实际的依赖。 --includegroupIdnull/groupIdartifactIdnull/artifactId/include/includes!-- layout标签指定了打包的布局格式为ZIP。 --layoutZIP/layout!--使用外部配置文件jar包里没有资源文件 [addResources标签设置为true表示在打包时使用外部配置文件而不是将资源文件打包进JAR中。] --addResourcestrue/addResources!-- 指定了输出目录为Maven项目构建目录 --outputDirectory${project.build.directory}/outputDirectory/configurationexecutions!--执行目标repackage表示重新打包 --executiongoalsgoalrepackage/goal/goalsconfiguration!--配置jar包特殊标识 配置后保留原文件生成新文件 *-run.jar --!--配置jar包特殊标识 不配置原文件命名为 *.jar.original生成新文件 *.jar --!--classifierrun/classifier --/configuration/execution/executions/pluginplugin!-- 用于创建自定义分发包的插件 --artifactIdmaven-assembly-plugin/artifactIdconfiguration!-- not append assembly id in release file name --!-- 表示在生成的分发包文件名中不附加assembly ID。这样可以保持文件名的简洁。 --appendAssemblyIdfalse/appendAssemblyIddescriptors!-- 定义了一个描述符文件src/main/resources/package.xml这个文件用于描述如何打包项目包括哪些文件和目录需要包含在分发包中。 --descriptorsrc/main/resources/package.xml/descriptor/descriptors/configuration!-- 插件的执行配置。 --executionsexecutionidmake-assembly/id!-- 任务在Maven的package阶段执行 --phasepackage/phase!-- 定义了要执行的目标这里的目标是single表示执行一次打包操作。 --goalsgoalsingle/goal/goals/execution/executions/plugin/plugins /build[注意修改内容] spring-boot-maven-plugin 打包插件版本号 之间在配置的属性中进行修改即可 指定入口类位置 在 maven-jar-plugin 插件中的 mainClass 属性中需要根据自己项目对主类入口地址进行调整 7.2 分发包插件配置文件 在项目源码中创建一个 package.xml 配置文件用于 maven-assembly-plugin 分发包插件的调用 package.xml 文件内容 ?xml version1.0 encodingUTF-8? assemblyxmlnshttp://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsdidpackage/idformatsformatzip/format/formatsincludeBaseDirectorytrue/includeBaseDirectory!-- 将项目构建目录中的资源文件打包到压缩包中并对特定类型的文件如脚本文件设置特定的权限和输出目录 --fileSetsfileSet!-- 源目录路径中 目录中选择所有 .bat 和 .sh 文件。 --directory${project.build.directory}/resources/directoryoutputDirectory//outputDirectory!-- 脚本文件在 linux 下的权限设为 755无需 chmod 可直接运行 --fileMode755/fileModeincludesinclude*.bat/includeinclude*.sh/include/includes/fileSetfileSet!-- 目录中选择所有非 .bat 和 .sh 文件 --directory${project.build.directory}/resources/directoryoutputDirectory/resources/outputDirectoryexcludesexclude**/*.bat/excludeexclude**/*.sh/exclude/excludes/fileSetfileSetdirectory${project.build.directory}/lib/directoryoutputDirectory/lib/outputDirectory/fileSetfileSetdirectory${project.build.directory}/directoryoutputDirectory//outputDirectoryincludesinclude*.jar/include/includes/fileSet/fileSets/assembly7.3 项目启动脚本编写 在源码中创建四个项目启动相关的脚本文件用于项目jar的启动操作 这几个启动脚本会在打包时被 分发包插件 统一压缩到zip文件下在项目部署时直接解压压缩包之后点击脚本即可启动项目 [注意所有脚本中的 **java -Dfile.encodingutf-8 -jar xxxx.jar** 命令后面的xxx.jar jar包文件名称需要根据自己项目打包后的名称进行修改! 否则脚本无法实现项目启动功能 ] restart.sh 脚本内容 #!/bin/bash echo stop application source stop.sh echo start application source start.shstart.bat 脚本内容 echo off set JRE_HOME.\jre1.8.0_221 set JAVA_HOME.\jdk1.8.0_221 set CLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar path %path%;%JRE_HOME%\bin path %path%;%JAVA_HOME%\bin path java -Dfile.encodingutf-8 -jar u8CloudManagementProject-0.0.1-SNAPSHOT.jar pausestar.sh 脚本内容 #!/bin/bash #自己安装解压后的jdk路径----自行修改 export JAVA_HOME/user_normal/java/jdk1.8 export CLASSPATH.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH$JAVA_HOME/bin:$PATH nohup java -Dfile.encodingutf-8 -jar u8CloudManagementProject-0.0.1-SNAPSHOT.jarstop.sh 脚本内容 #!/bin/bash PID$(ps -ef | WXJFSPCXGSJZYV2-2.0.jar | grep -v grep | awk { print $2 }) if [ -z $PID ] thenecho Application is already stopped elseecho kill $PIDkill $PID fi7.4 项目执行打包操作效果 通过maven 执行 package 操作后的 target 文件夹中的内容这样就实现了 资源和jar 分离的操作 同时这里生成了一个.zip 压缩包解压后进入该文件夹可以得到项目运行所需要的所有资源
http://www.yingshimen.cn/news/28640/

相关文章:

  • 湖南城市建设网站wordpress页面找不到该网页
  • 别人帮我做的网站没用要交费用吗甘肃seo网站
  • 2016织梦小说网站源码wordpress主题摄影
  • 网站 运营手机怎么创建网址链接
  • 钢板防护罩做网站领动网站建设
  • 产品宣传类网站设计o2o苗木网站建设
  • 网站超大文件上传东莞凌峰建设公司
  • 网站开发验收方案开发公司已开发完成楼盘土地证能否出让
  • 做悬浮导航的网站做兼职什么网站比较好
  • 最牛html5网站建设wordpress主题二级菜单栏
  • 那些网站可以做文案兼职学校门户网站功能
  • 网站建设公司小程序开发网站改版灵感库
  • 网站服务器租用协议洛阳网站改版
  • wp-wordpress厦门网站排名优化软件
  • 浙江住建局官方网站免费网站建设软件推荐
  • 做电商网站就业岗位晋升网络营销自学课程
  • 南京我爱我家网站建设新村二手房wordpress快站
  • 网站如何做线上和线下推广门户类网站是什么意思
  • 怎么用手机创建网站wordpress删除评论框
  • 网站客户留言网站建设的价值
  • 成都家具网站建设织梦m网站伪静态
  • 做化学题的网站可以做试卷网站数学试卷小学六
  • 购物网站设计说明网站更新维护页面
  • 广州网站服务做移动端网站设计
  • 南充网站开发浙江华企网站做的咋样
  • 深圳团购网站建设python flask做网站
  • 杭州网站建设公司服务市场调研报告怎么写的
  • 一键生成文案的网站中原彼得堡航空学院网站的建设
  • php mysql网站开发...手机模块网站
  • 网站推广上首页杭州网站建设怎么样