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

网站建设 展滔科技大厦wordpress 自动水印

网站建设 展滔科技大厦,wordpress 自动水印,培训学校类网站建设方案,网站建设未来发展1 什么是Maven Maven对项目进行模型抽象#xff0c;充分运用的面向对象的思想#xff0c;Maven可以通过一小段描述信息来管理项目的构建#xff0c;报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外#xff0c;还提供高级项目管理工具。简单的来说Maven是…1 什么是Maven Maven对项目进行模型抽象充分运用的面向对象的思想Maven可以通过一小段描述信息来管理项目的构建报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外还提供高级项目管理工具。简单的来说Maven是一个项目管理工具它包含了一个项目对象模型POMProject Object Model一组标准集合一个项目生命周期Project Lifecycle一个依赖管理系统Dependency Management System用来运行在生命周期阶段中插件目标的逻辑。 2 为什么要使用maven 使用maven主要有2点依赖管理和生命周期 1依赖管理对第三方的jar包进行统一的管理 ①添加第三方jar包开发时使用第三方jar包最简单的方法就是复制粘贴到WEB-INF目录下的lib目录下每个新工程都要复制粘贴从而造成工作区中存在大量重复的文件。通过maven只需要维护一个文本形式的jar包的引用称之为“坐标”自动从maven仓库中下载到工程体现了代码重用的原则 ②jar包之间的依赖关系jar包往往不是孤立存在的很多jar包都需要在其他jar包的支持下才能够正常工作Maven就可以替我们自动的将当前jar包所依赖的其他所有jar包全部导入进来无需人工参与不必了解这个依赖关系。 ③jar包之间的冲突前面是jar包少了无法工作有时jar包多了项目仍然无法正常工作Maven中内置了两条依赖原则最短路径者优先和先声明者优先 2生命周期 生命周期的一键构建提供了一套对项目生命周期管理的标准,开发人员,测试人员统一使用maven进行项目的构建.项目的生命周期管理:编译,测试,打包,部署,运行 3 Maven的核心概念 核心概念包括以下几个方面POM约定的目录结构坐标依赖仓库生命周期插件和目标继承聚合 3.1 POM Project Object Model项目对象模型。将Java工程的相关信息封装为对象作为便于操作和管理的模型。Maven工程的核心配置配置Maven就是pom.xml文件中的配置。 3.2 约定的目录结构 JavaEE开发领域普遍认同一个观点约定配置编码。意思就是能用配置解决的问题就不编码能基于约定的就不进行配置。而Maven正是因为指定了特定文件保存的目录才能够对我们的Java工程进行自动化构建。 目录结构含义参见前面的描述。 3.3 坐标 Maven的坐标使用三个向量在Maven的仓库中唯一的确定一个Maven工程   ①groupId公司或组织的域名倒序当前项目名称   ②artifactId当前项目的模块名称   ③version当前模块的版本 groupIdcom.quinto/groupIdartifactIdrtwd-parent/artifactIdversion1.0-SNAPSHOT/version 将上面3个向量连起来com.quinto.rtwd-parent的字符串作为目录结构到仓库中查找:com/quinto/rtwd-parent/1.0-SNAPSHOT/rtwd-parent-1.0-SNAPSHOT.jar   注意自己的Maven工程必须执行安装操作才会进入仓库。安装的命令是mvn install 3.4 依赖 依赖当A jar包需要用到B jar包中的类时我们就说A对B有依赖。 当前工程会到本地仓库中根据坐标查找它所依赖的jar包配置的基本形式是使用dependency标签指定目标jar包的坐标。如下 dependenciesdependency!--坐标--groupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version!--依赖的范围--scopetest/scope/dependency /dependencies 直接依赖和间接依赖如果A依赖BB依赖C那么A→B和B→C都是直接依赖而A→C是间接依赖。 3.4.1 依赖的范围 1compile   ①main目录下的Java代码可以访问这个范围的依赖   ②test目录下的Java代码可以访问这个范围的依赖   ③部署到Tomcat服务器上运行时要放在WEB-INF的lib目录下   如对主程序的依赖。主程序、测试程序和服务器运行时都需要用到。 2test   ①main目录下的Java代码不能访问这个范围的依赖   ②test目录下的Java代码可以访问这个范围的依赖   ③部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下   如对junit的依赖。仅仅是测试程序部分需要。 3provided   ①main目录下的Java代码可以访问这个范围的依赖   ②test目录下的Java代码可以访问这个范围的依赖   ③部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下   如servlet-api在服务器上运行时Servlet容器会提供相关API所以部署的时候不需要。 4其他runtime、import、system等。 各个依赖范围的作用可以概括为下图 3.4.2 依赖的传递性 当存在间接依赖的情况时主工程对间接依赖的jar只有依赖范围为compile时可以访问 3.4.3 依赖的原则 1路径最短者优先 2路径相同时先声明者dependency标签配置的先后顺序优先: 3.4.4 排除依赖 如果直接引入的依赖AB都有传递依赖于C而且对C依赖的版本不一样那就有可能在运行时产生依赖冲突可以通过排除掉一些传递依赖来避免冲突如下 dependencygroupIdorg.apache.spark/groupIdartifactIdspark-core_2.12/artifactIdversion3.0.0/version!--依赖排除--exclusions!--需要排除的依赖可以写多个--exclusiongroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactId/exclusion/exclusions/dependency 3.4.5 统一管理jar包版本 通过properties标签可以声明自定义属性在pom中别的地方就可以用${属性名}引用属性的值如下 properties!-- junit --junit.version4.12/junit.version!-- logger --log4j.version2.11.0/log4j.version/properties    dependencyManagementdependencies!-- junit --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version/dependency!-- log4j-core --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion${log4j.version}/version/dependency/dependencies/dependencyManagement 3.5 仓库 1分类 本地仓库 : 相当于缓存。本地仓库存储在本地的磁盘当中里面存放的是经常使用的jar包。 远程仓库 : ①私服架设在当前局域网环境下基本每个公司都会有自己的私服当本地的磁盘中不存在需要的jar包资源则会请求私服进行资源下载。 ②中央仓库 : 远程仓库架设在Interne上由jar专业团队统一维护。 ③中央仓库的镜像架设在各个大洲为中央仓库分担流量。减轻中央仓库的压力同时更快的响应用户请求。 在pom.xml中配置仓库的位置 repositoriesrepositoryidali-repo/idnameali-repo/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//url/repositoryrepositoryidmvn-repo/idnamemvn-repo/nameurlhttps://mvnrepository.com/urllayoutdefault/layout/repository/repositories 2仓库中的文件   ①Maven的插件   ②我们自己开发的项目的模块   ③第三方框架或工具的jar包 3.6 生命周期 1Maven生命周期   Maven生命周期定义了各个构建环节的执行顺序有了这个清单Maven就可以自动化的执行构 建命令了。   Maven有三套相互独立的生命周期分别是 ①Clean Lifecycle在进行真正的构建之前进行一些清理工作。②Default Lifecycle构建的核心部分编译测试打包安装部署等等。③Site Lifecycle生成项目报告站点发布站点。 它们是相互独立的可以仅仅调用clean来清理工作目录仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。 每套生命周期都由一组阶段(Phase)组成我们平时在命令行输入的命令总会对应于一个特定的阶段。比如运行mvn clean这个clean是Clean生命周期的一个阶段。有Clean生命周期也有clean阶段。 2clean生命周期   Clean生命周期一共包含了三个阶段①pre-clean 执行一些需要在clean之前完成的工作 ②clean 移除所有上一次构建生成的文件 ③post-clean 执行一些需要在clean之后立刻完成的工作 3Site生命周期   ①pre-site 执行一些需要在生成站点文档之前完成的工作②site 生成项目的站点文档③post-site 执行一些需要在生成站点文档之后完成的工作并且为部署做准备④site-deploy 将生成的站点文档部署到特定的服务器上 这里经常用到的是site阶段和site-deploy阶段用以生成和发布Maven站点这可是Maven相当强大的功能Manager比较喜欢文档及统计数据自动生成很好看。 4Default生命周期   Default生命周期是Maven生命周期中最重要的一个绝大部分工作都发生在这个生命周期中。这里只解释一些比较重要和常用的阶段 validate generate-sources process-sources generate-resources process-resources 复制并处理资源文件至目标目录准备打包。 compile 编译项目的源代码。 process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources 复制并处理资源文件至目标测试目录。 test-compile 编译测试源代码。 process-test-classes test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。 prepare-package package 接受编译好的代码打包成可发布的格式如JAR。 pre-integration-test integration-test post-integration-test verify install将包安装至本地仓库以让其它项目依赖。 deploy将最终的包复制到远程的仓库以让其它开发人员与项目共享或部署到服务器上运行。 5生命周期与自动化构建   运行任何一个阶段的时候它前面的所有阶段都会被运行如运行mvn install 的时候代码会被编译测试打包。这就是Maven为什么能够自动执行构建过程的各个环节的原因。此外Maven的插件机制是完全依赖Maven的生命周期的因此理解生命周期至关重要。 3.7 插件和目标 1Maven的核心仅仅定义了抽象的生命周期具体的任务都是交由插件完成的。   2每个插件都能实现多个功能每个功能就是一个插件目标。   3Maven的生命周期与插件目标相互绑定以完成某个具体的构建任务。   如compile就是插件maven-compiler-plugin的一个功能pre-clean是插件maven-clean-plugin的一个目标。 pluginsplugin!-- 编译说明 --groupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.2/versionconfiguration !--作为DOM对象的配置--  source1.7/sourcetarget1.7/target/configuration/plugin/plugins 这里就是告诉我们的代码使用的是什么jdk版本。plugin复制文件groupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdexecutionsexecutionphasecompile/phase 绑定了目标的构建生命周期阶段如果省略目标会被绑定到源数据里配置的默认阶段  goals 配置的执行目标  goalcopy-resources/goal/goalsconfiguration outputDirectory${project.build.outputDirectory}/outputDirectoryresourcesresourcedirectorysrc/main/resources/{dev}/directory/resource/resourcesoverwritetrue/overwrite/configuration/execution/executions/plugin 这是拷贝配置信息的一段xml,由于我们有三个环境所以为了便捷可以直接使用插件进行拷贝一些配置信息。 plugin打包声明groupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion2.6/versionconfigurationwarName3hfund/warNamefailOnMissingWebXmlfalse/failOnMissingWebXmlwebResourcesresourcedirectory${basedir}/src/main/webapp/directoryfilteringtrue/filteringincludesincludeWEB-INF/web.xml/include/includes/resource/webResources/configuration /plugin 使用了maven-war-plugin插件进行打包。 profile 可以通过 -P ID 来激活idPUB/id ID 标识符propertiesenvpub/env properties 定义 key-value, 这里 key 是 env, value 是 PROD/propertiesactivationactiveByDefaulttrue/activeByDefault /activation /profle 定义了打包过程中使用的配置文件打包使用 mvn package –P PUB则打包配置文件是pub的war包。 3.8 继承 使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。 3.8.1 父子工程 创建父工程父工程只需要保留pom.xml文件即可 groupIdcom.quinto/groupIdartifactIdrtwd-parent/artifactId!--父工程的打包方式为pom--packagingpom/packagingversion1.0-SNAPSHOT/version 父工程中的pom会包含module的定义如下 modulesmodulertwd-common/modulemodulertwd-canal/modulemodulertwd-etl/modulemodulertwd-simulator/module/modules 子工程中会有父工程的定义 parentartifactIdrtwd-parent/artifactIdgroupIdcom.quinto/groupIdversion1.0-SNAPSHOT/version/parent 3.8.2 依赖继承 父工程引入的依赖所有子工程都会自动继承 3.8.3 依赖管理 父工程通过dependencyManager声明依赖的相关属性版本但是并不会真正引入依赖。子工程在引入dependencyManager声明的依赖时不需要指定版本直接继承dependencyManager中声明的版本 父工程中声明如下 dependencyManagementdependencies!-- junit --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version/dependency/dependencyManagement 子工程中引入依赖不需要指定版本和范围 dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactId/dependency/dependencies 3.9 聚合 将多个工程拆分为模块后需要手动逐个安装到仓库后依赖才能够生效。修改源码后也需要逐个手动进行clean操作。而使用了聚合之后就可以批量进行Maven工程的安装、清理工作。 配置在总的聚合工程中使用modules/module标签组合指定模块工程的相对路径即可。Maven可以根据各个模块的继承和依赖关系自动选择安装的顺序 modulesmodulertwd-common/modulemodulertwd-canal/modulemodulertwd-etl/modulemodulertwd-simulator/module/modules 4 Maven安装 1检测java环境 Maven是使用Java开发的所以必须知道当前系统环境中JDK的安装目录。 echo %JAVA_HOME% D:\soft\jdk1.8 2解压Maven的核心程序 将maven的安装包解压到非中文无空格目录下 3配置环境变量 将解压后的路径配置到系统环境变量中 4查看是否安装正确 mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: E:\working\maven\apache-maven-3.6.3\bin\.. Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: D:\soft\jdk1.8\jre Default locale: zh_CN, platform encoding: GBK OS name: windows 10, version: 10.0, arch: amd64, family: windows 5Maven的核心配置 Maven的核心配置文件位置Maven安装目录的conf目录下的settings.xml Maven核心程序查找插件顺序本地仓库--远程中央仓库下载(不能上网则无法执行Maven的具体功能) Maven默认的本地仓库当前用户的家目录.m2\repository目录 修改settings.xml设置本地仓库位置及配置阿里云镜像 localRepositoryE:\working\maven\maven-repository/localRepositorymirrorsmirroridnexus-aliyun/idmirrorOfcentral/mirrorOfnameNexus aliyun/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//url/mirror/mirrors 5 Maven常用的命令生命周期 mvn clean命令; 清除target目录 mvn compile命令; 编译生成target目录 mvn test命令; 将测试代码和核心代码一起编译 mvn package命令; 编译测试代码和核心代码并且打包对应的包类型 mvn install命令; 编译测试代码和核心代码并且打包对应的包类型并且将生成的包安装到本地仓库 mvn deploy命令 用于发布项目 6 pom.xml配置实例 父工程 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion ​groupIdcom.quinto/groupIdartifactIdrtwd-parent/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmodulertwd-common/module/modulesrepositoriesrepositoryidali-repo/idnameali-repo/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//url/repository/repositoriesproperties!-- project compiler --project.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.encodingUTF-8/maven.compiler.encodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingmaven.build.timestamp.formatyyyyMMddHHmmss/maven.build.timestamp.format!-- sdk --java.version1.8/java.versionscala.version2.11/scala.version!-- junit --junit.version4.12/junit.version!-- logger --log4j.version2.11.0/log4j.versionslf4j.version1.7.25/slf4j.version!-- bigdata --hadoop.version2.6.0/hadoop.versionhbase.version1.2.0/hbase.versionprotobuf.version3.4.0/protobuf.versionflink.version1.10.0/flink.versionkafka.client.version1.0.0/kafka.client.versionkafka.version0.11.0.2/kafka.versioncanal.version1.0.24/canal.version!-- json --fastjson.version1.2.44/fastjson.version ​/properties ​dependencyManagementdependencies!-- junit --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/versionscopetest/scope/dependency!-- log4j-core --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion${log4j.version}/version/dependency!-- log4j-api --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion${log4j.version}/version/dependency!-- log4j-web --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion${log4j.version}/version/dependency!-- slf4j-api --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion${slf4j.version}/version/dependency!-- jcl-over-slf4j --dependencygroupIdorg.slf4j/groupIdartifactIdjcl-over-slf4j/artifactIdversion${slf4j.version}/versionscoperuntime/scope/dependency!-- log4j-slf4j-impl --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-slf4j-impl/artifactIdversion${log4j.version}/version/dependency!-- hadoop --dependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-common/artifactIdversion${hadoop.version}-${cdh.version}/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-hdfs/artifactIdversion${hadoop.version}-${cdh.version}/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion${hadoop.version}/version/dependency!--hbase-shaded , 用来更改hbase中的一些报名解决protobuf的冲突问题--dependencygroupIdorg.apache.hbase/groupIdartifactIdhbase-shaded-client/artifactIdversion1.2.1/version/dependency ​dependencygroupIdorg.apache.hbase/groupIdartifactIdhbase-shaded-server/artifactIdversion1.2.1/version/dependencydependencygroupIdorg.apache.htrace/groupIdartifactIdhtrace-core/artifactIdversion3.1.0-incubating/version/dependency!-- flink --dependencygroupIdorg.apache.flink/groupIdartifactIdflink-core/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-scala_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-runtime_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-connector-kafka-0.11_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-table-planner_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-streaming-scala_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-streaming-java_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-hbase_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.bahir/groupIdartifactIdflink-connector-redis_${scala.version}/artifactIdversion1.0/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-statebackend-rocksdb_${scala.version}/artifactIdversion${flink.version}/version/dependencydependencygroupIdorg.apache.flink/groupIdartifactIdflink-cep_${scala.version}/artifactIdversion${flink.version}/version/dependency!-- kafka --dependencygroupIdorg.apache.kafka/groupIdartifactIdkafka_2.11/artifactIdversion${kafka.version}/version/dependencydependencygroupIdorg.apache.kafka/groupIdartifactIdkafka-clients/artifactIdversion${kafka.client.version}/version/dependency!-- canal --dependencygroupIdcom.alibaba.otter/groupIdartifactIdcanal.common/artifactIdversion${canal.version}/version/dependencydependencygroupIdcom.alibaba.otter/groupIdartifactIdcanal.client/artifactIdversion${canal.version}/version/dependency!-- fastjson --dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion${fastjson.version}/version/dependency/dependencies/dependencyManagement ​buildfinalName${project.name}/finalNameplugins!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion${maven-compiler-plugin.version}/version!--代码使用的jdk版本--configuration!-- 字符集编码 --encodingUTF-8/encoding!-- 源代码使用的JDK版本 --source1.8/source!-- 需要生成的目标class文件的编译版本 --target1.8/targetverbosetrue/verbose!-- 要使compilerVersion标签生效还需要将fork设为true用于明确表示编译版本配置的可用 --forktrue/fork/configuration/plugin/plugins/build /project 子模块 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdrtwd-parent/artifactIdgroupIdcom.quinto/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersion ​artifactIdrtwd-common/artifactIddependenciesdependencygroupIdcom.alibaba.otter/groupIdartifactIdcanal.client/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactId/dependencydependencygroupIdcom.google.protobuf/groupIdartifactIdprotobuf-java/artifactId/dependencydependencygroupIdorg.apache.kafka/groupIdartifactIdkafka-clients/artifactId/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactId/dependency/dependencies ​buildextensionsextensiongroupIdkr.motd.maven/groupIdartifactIdos-maven-plugin/artifactIdversion1.4.1.Final/version/extension/extensionsplugins!-- Protobuf插件 --plugingroupIdorg.xolstice.maven.plugins/groupIdartifactIdprotobuf-maven-plugin/artifactIdversion0.6.1/versionconfigurationprotoSourceRoot${project.basedir}/src/main/proto/protoSourceRootprotocArtifactcom.google.protobuf:protoc:3.1.0:exe:${os.detected.classifier}/protocArtifact/configurationexecutionsexecutiongoalsgoalcompile/goal/goals/execution/executions/plugin/plugins/build ​ /project
http://www.sadfv.cn/news/65179/

相关文章:

  • 山西集团网站建设如何让网站gzip
  • 网站建设制作深圳福州建站开发
  • 建设银行网站需要什么浏览器计算机大专生的出路
  • 东至网站建设网站与网站自动跳转代码
  • 南宁市网站建设网站正在建设模板
  • 拼多多网站建设网站放在服务器上
  • 个人网站备案内容智慧景区网站建设
  • 建设网站上海网站建设需求有哪些
  • 个人网站备案做商城google帐户登录网站如何做的
  • 衡水企业网站建设价格extract wordpress
  • 彩票网站代理怎么做预付网站建设服务费如何入账
  • 镇江网站建设介绍wordpress前端上传大文件大小
  • 网站建设优化解析怎么提高seo排名
  • 玩具公司网站建设方案行业网站建设收费明细
  • 北京做网络工程公司的网站餐厅装修
  • 克隆网站首页做单页站几个文件深圳 公司网站设计
  • 郑州大学现代远程教育《网页设计与网站建设》课程考核要求怎么做一个购物平台网站
  • 宿州网站建设公司哪家好望野怎么读
  • 合肥网站建设q.479185700惠建设一个微网站要花多少钱
  • 盐城做网站如何创建网站下载
  • 优化免费网站建设建站系统
  • 有什么好的网站建设的书手机网站 底部菜单
  • 布吉做棋牌网站建设找哪家效益快南海网站智能推广
  • 做网站选哪家医疗网站是否全部需要前置备案
  • 03340网站建设与管理wordpress美化登录界面
  • wordpress展示企业主题免费关键词搜索优化
  • 关于网站建设项目实训报告安卓app开发模板
  • 公司网站建设对公司的重要性女教师遭网课入侵直播录屏曝光
  • 网站导航营销步骤怎么上传wordpress
  • 专业网站建设商城价格wordpress attachment