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

太仓网站公司中国职业培训在线平台

太仓网站公司,中国职业培训在线平台,cms那个做网站最好,读心王爷太难缠目录 Maven简介 Maven快速上手 Maven详细介绍 Maven工作机制 Maven安装及配置 使用IDEA创建Maven Web工程 Maven简介 Maven是 Apache 开源组织奉献的一个开源项目,可以翻译为“专家”或“内行”。 Maven 的本质是一个项目管理工具,将项目开发和管…

目录

Maven简介

Maven快速上手

Maven详细介绍

Maven工作机制

Maven安装及配置

使用IDEA创建Maven Web工程


Maven简介

Maven是 Apache 开源组织奉献的一个开源项目,可以翻译为“专家”或“内行”。

Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM project object model),通过简单的配置和命令就可以完成项目的构建管理依赖管理。 使用 Maven 可以实现自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。

简要概述:我们使用Idea构建Java项目中,若是要使用Mysql数据库要导包mysql-connector-java.jar JDBC驱动或者其他封装好的包,常见方式是去官网下载JAR文件,导入项目中。采用Maven能够取消这一步骤,通过POM.xml文件进行管理依赖。

Maven官网:Maven – Welcome to Apache Maven

Maven快速上手

第一次使用Maven需要到官网下载Maven 后续不再使用这一步骤,类似JDK的下载

Maven下载

下载地址:Maven – Download Apache Maven,当前最新版本是3.9.9,选择apache-maven-3.9.9-bin.zip压缩包下载到本地。

Maven安装

只需要将Maven解压到非中文、没有空格的目录。比如解压到D盘,那么Maven安装目录就是D:\apache-maven-3.9.9

IDEA集成Maven

  • 通过File-->Settings-->Build,Execution,Deployment-->Build Tools-->Maven可以配置当前工程的Maven。
  • 通过File-->New Projects Setup-->Settings for New Projects-->Build,Execution,Deployment-->Build Tools-->Maven可以为后面新创建的所有工程自动配置Maven。

IDEA中创建Maven工程

通过File-->New-->Project-->Maven Archetype可以使用“mvnarchetype:generate”命令创建Maven工程。

  1. 输入工程名称,选择工程在电脑中的存放位置以及JDK版本。
  2. 选择Archetype工程原型(架构),不同的架构创建的工程结构是不同的。
  • 选择apache.maven.archetypes:maven-archetype-quickstart,可以创建Java工程。
  • 选择org.apache.maven.archetypes:maven-archetype-webapp,可以创建Web工程。
  1. 输入Maven工程的GAV三坐标。
  • GroupId:公司或组织名,一般使用倒序的域名,如com.taobao或者com.cg。
  • ArtifactId:一个项目或者是项目中的一个模块名称,默认和工程名称相同。

pom.xml文件内容解读

最基本的内容包含

一、xml文件声明
<?xml version="1.0" encoding="UTF-8"?>二、根元素
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">三、子元素
<modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>0.0.1-SNAPSHOT</version><!--添加依赖GAV三坐标  具体的可以让AI帮你添加-->
<!--常用依赖:mybatis、spring boot、junit、mysql、-->
<dependencies>
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version>
</dependency>
</dependencies></project>
详细说明POM.XML文档
<?xml version="1.0" encoding="UTF-8"?>
<!--XML文档声明-->
<!--拓展知识:XML文件 可扩展标记语言-->
<!--被设计用来存储和传输数据。XML文件的结构非常灵活,可以自定义标签来描述数据。它被广泛应用于数据交换、配置文件、文档存储等领域。--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--根元素-->
<!--<project></project>标签,-->
<!--作用:将该文档内所有的文件都包含其中-->
<!--XML 命名空间和 Schema 位置:
xmlns="http:...":这个属性定义了 XML 文档的默认命名空间,指向 Maven 的 POM 4.0.0 规范。这告诉 Maven 这个 pom.xml 文件遵循哪个版本的项目对象模型规范。
xmlns:xsi="http:...":这个属性定义了 XML Schema 实例的命名空间,它用于提供对 XML Schema 的引用,以验证 XML 文档的结构。
xsi:schemaLocation="http:..":这个属性提供了 XML Schema 的位置,Maven 使用这个位置来验证 pom.xml 文件的结构是否正确。如果 Maven 无法访问这个 Schema,可能是因为网络问题或者链接不正确。--><modelVersion>4.0.0</modelVersion>
<!--子元素-->
<!--<modelVersion> 元素是必需的,并且必须位于文件的顶部,作为根 <project> 元素的直接子元素。--><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>0.0.1-SNAPSHOT</version>
<!--这三个标签不可省略,用于确定Maven项目的唯一标识,分别代表:-->
<!--<groupId> 通常,这个值遵循 Java 包命名约定,是反向的域名格式。如果一个组织的域名是 example.com,那么它的 groupId 可能是 com.example。-->
<!--<artifactId> 与 groupId 结合使用,以确保在 Maven 仓库中的唯一性。这个值通常反映了项目或构件的名称。-->
<!--<version> 版本号通常遵循语义化版本控制(Semantic Versioning)格式,包括主版本号、次版本号、修订号,可能还包括预发布版本标识。--><name>mybatis_2.0</name><description>mybatis_2.0</description><url>http://maven.apache.org</url>
<!--可省,代表-->
<!--<name> 元素定义了项目的名称。-->
<!--<description> 元素提供了项目的详细描述。-->
<!--<url> 元素的值可以是任何有效的URL:-->
<!--
项目主页的地址
项目的源代码仓库(如GitHub、GitLab或Bitbucket)
项目的文档网站
项目的开发者论坛或邮件列表
项目的bug跟踪系统
--><dependencies><!--MyBatis框架依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.16</version></dependency><!--MySQL驱动依赖--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version></dependency></dependencies>
<!--依赖的GAV三坐标 dependencies 嵌套 dependency--></project>

其他标签

父类POM

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath/> <!-- lookup parent from repository -->
</parent>

属性 java.version的版本号

<properties><java.version>17</java.version>
</properties>

定义项目构建过程

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

Maven详细介绍

Maven工作机制

首先,我们需要在电脑中安装Maven(Maven核心程序),Maven中提供了很多Maven命令来完成项目的构建管理。我们需要使用Maven命令创建Maven工程,在Maven工程中有一个pom.xml文件,pom.xml是Maven工程的核心配置文件,通过该配置文件我们可以完成Jar包依赖、项目构建等的配置。

比如,我们需要在工程中使用MySQL驱动的Jar包,我们只需要在pom.xml中完成添加如下依赖配置:

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version>
</dependency>

groupId(组ID)、artifactId(工件ID)和version(版本)是Jar包依赖的GAV三坐标,GAV三坐标就相当于人的姓+名,起到一个标识的作用。Maven工程在构建的过程中,会依据pom.xml中的GAV三坐标首先从本地仓库中下载jar包添加到工程中,如果本地仓库没有,那么会自动默认去中央仓库(Central Repository:)下载Jar包到本地仓库中,然后添加到工程中。中央仓库中几乎存放了所有的第三方Jar包依赖。通过地址https://mvnrepository.com/可以查询所有Jar包版本的GAV三坐标。

但是中央仓库是部署在国外的,访问速度较慢并且不稳定,因此我们配置使用阿里云镜像仓库(https://maven.aliyun.com/repository/central),速度更快更稳定。

Maven安装及配置

【任务】:完成电脑中Maven的下载、安装和配置。

Maven下载

下载地址:Maven – Download Apache Maven,当前最新版本是3.9.9,选择apache-maven-3.9.9-bin.zip压缩包下载到本地。

Maven安装

只需要将Maven解压到非中文、没有空格的目录。比如解压到D盘,那么Maven安装目录就是D:\apache-maven-3.9.9

Maven配置

找到Maven安装目录下的conf/settings.xml配置文件并进行编辑。

  1. 配置本地仓库

在<settings>节点下加入<localRepository>节点配置本地仓库位置(默认的本地仓库地址为${user.home}/.m2/repository)。

<!--配置本地仓库位置-->
<localRepository>D:\maven\repository</localRepository>
  1. 配置阿里云远程仓库

在<mirrors>节点下加入<mirror>节点配置阿里云远程仓库镜像地址。

<!--配置阿里云远程镜像仓库--><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/central</url></mirror>
  1. 配置JDK版本

由于Maven软件是使用java语言编写的程序,其运行需要JDK环境支持,因此在安装Maven环境之前一定要安装JDK(建议JDK17版本,如果电脑中未安装,JDK17安装与配置参考安装JDK17并配置Java环境变量_jdk17配置环境变量-CSDN博客)。

Maven默认运行JDK版本是1.4,显然不能满足我们的需求,我们需要在Maven配置文件中设置JDK版本。

在Maven配置文件中,找到<profiles>标签,加入<profile>标签,具体指定配置id、JDK版本和编译配置。同时加入<activeProfiles>标签,加入<activeProfile>标签,指定配置id激活配置。

  <profiles><!-- 配置JDK17版本 --><profile><id>jdk-17</id><activation><activeByDefault>true</activeByDefault><jdk>17</jdk></activation><properties>    <maven.compiler.source>17</maven.compiler.source>    <maven.compiler.target>17</maven.compiler.target><maven.compiler.compilerVersion>17</maven.compiler.compilerVersion> </properties></profile></profiles><!-- 激活jdk配置 --><activeProfiles><activeProfile>jdk-17</activeProfile></activeProfiles>
  1. 环境变量配置

(1)配置MAVEN_HOME

(2)编辑Path,添加一行配置“%MAVEN_HOME%\bin”

Maven命令

Maven配置完成后,就可以使用Maven命令进行项目构建和依赖管理了。

命令

作用

说明

mvn -v

查看Maven当前版本信息

使用mvn –v或mvn –version命令,执行后的结果一样。

mvnarchetype:generate

创建Maven项目

执行命令后,提示输入Maven坐标等信息。

mvn clean

删除target目录

target目录是Maven的输出目录,主要存放生成的class、jar、war等文件。

mvn compile

编译程序

编译后的文件将存放在taget/classes目录中。

mvn test-complie

编译测试程序

编译的测试文件将存放在target/test-classes目录中。

mvn test

执行程序测试

测试报告将存放在target/surefire-reports目录中。

mvn package

打包项目

打包后的结果(jar或war包)将存放在target目录中。

mvn install

安装jar包到本地仓库

将打包好的jar包存放到Maven本地仓库中。

打开cmd命令行窗口,输入命令mvn-v,可以查看当前配置的Maven版本号。

其他的命令我们通过IDEA集成Maven进行使用。

IDEA集成Maven进行项目构建

【任务】使用IDEA集成Maven,并使用Maven命令完成工程的创建、编译、清理和打包。

IDEA集成Maven

  • 通过File-->Settings-->Build,Execution,Deployment-->Build Tools-->Maven可以配置当前工程的Maven。
  • 通过File-->New Projects Setup-->Settings for New Projects-->Build,Execution,Deployment-->Build Tools-->Maven可以为后面新创建的所有工程自动配置Maven。

创建Maven工程

通过File-->New-->Project-->Maven Archetype可以使用“mvnarchetype:generate”命令创建Maven工程。

  1. 输入工程名称,选择工程在电脑中的存放位置以及JDK版本。
  2. 选择Archetype工程原型(架构),不同的架构创建的工程结构是不同的。
  • 选择apache.maven.archetypes:maven-archetype-quickstart,可以创建Java工程。
  • 选择org.apache.maven.archetypes:maven-archetype-webapp,可以创建Web工程。
  1. 输入Maven工程的GAV三坐标。
  • GroupId:公司或组织名,一般使用倒序的域名,如com.taobao或者com.cg。
  • ArtifactId:一个项目或者是项目中的一个模块名称,默认和工程名称相同。
  • Version:版本号,默认为1.0-SNAPSHOT。

  1. 点击Create创建按钮创建Maven工程。

Maven工程结构

创建好的Maven工程如下所示:

  • src/main/java:源代码目录,存放开发者编写的实现系统功能的源代码。
  • src/test/java:测试代码目录,存放对源代码进行测试的测试脚本。
  • pom.xml:Maven核心配置文件,进行GAV坐标配置、Jar包依赖配置、项目构建配置等。
  • External Libraries:依赖的外部组件库,比如JDK,依赖的第三方的Jar包等。

  • pom.xml文件内容解读

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--配置工程的GAV三坐标--><groupId>com.cg</groupId><artifactId>maven-project-java</artifactId><version>1.0-SNAPSHOT</version><!--配置打包方式,java工程打成jar包,web工程打成war包--><packaging>jar</packaging><name>maven-project-java</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--配置Jar包依赖--><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>

添加Jar包依赖

比如,我们在工程中添加MySQL驱动依赖,需要在pom.xml文件中,添加mysql-connector-sql依赖配置。

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version>
</dependency>

依赖添加后,一定要记得刷新Maven仓库,才能从本地仓库或者远程仓库中下载Jar包添加到工程外部资源库中。

工程编译、清理、打包和安装

可以通过Maven操作面板执行Maven命令完成Maven工程的编译、清理和打包操作。

  • compile:编译命令,自动生成target目录,target目录是Maven工程的输出目录,它包含了编译、测试、打包等构建过程生成的所有文件。
  • clean:清理命令,删除target目录。
  • package:打包命令,将打包后的结果(jar或war包)存放在target目录中。
  • install:安装命令, 将打包后的jar包上传到maven本地仓库。

在Maven工程中进行单元测试

单元测试

单元测试:是指对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。

单元测试属于白盒测试范畴,一般由开发人员进行来做,便于及时发现代码bug,保证代码质量。

JUnit单元测试框架由Erich Gamma和Kent Beck编写的一个回归测试框架(Regresion Testing Framework),主要用于Java语言程序的单元测试。

目前最新版本为JUnit5,其官网地址是 https://junit.org/。

JUnit5简单使用

  1. 在Maven工程中,添加JUnit5框架依赖。

在pom.xml文件中,添加JUnit5的Maven坐标信息。其中,scope表示依赖作用的范围,依赖作用的范围可以分为编译阶段、测试阶段和运行阶段。scope的值为test表示该依赖只在测试阶段可用,也就是在src/test文件夹下可用;scope的默认值是compile表示该依赖在编译、测试和运行阶段都可用。具体内容如下:

  <!-- JUnit5的Maven坐标 -->
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.2</version><scope>test</scope>
</dependency>
  1. 在工程中编写JUnit测试方法

JUnit为我们提供了一个@Test注解,用来指定当前方法将作为测试用例方法使用,该方法可以直接运行。

  • @Test注解标识该方法是一个测试方法,可以执行
  • @Test注解的方法必须是public,void,非静态,不带参数。

在IDEA的src/main/test/java目录下添加测试类,在测试类中定义一个测试方法,方法上使用@Test注解,方法体中编写测试内容脚本。具体内容如下:

public class AppTest {@Testpublic void test1(){//编写测试脚本System.out.println("执行测试脚本");}
}
  1. 运行测试方法,执行测试脚本

单击方法前面的运行按钮,运行测试方法

使用IDEA创建Maven Web工程

【任务】使用IDEA创建Maven Web工程,在工程中新建Servlet处理HTTP请求,并将工程发布到Tomcat中运行。

创建Maven Web工程

通过File-->New-->Project-->Maven Archetype创建Maven Web工程。

  1. 输入工程名称,选择工程在电脑中的存放位置以及JDK版本。
  2. 选择org.apache.maven.archetypes:maven-archetype-webapp,可以创建Web工程。
  3. 输入Maven工程的GAV三坐标。

  1. 点击Create创建按钮创建Maven工程。

Maven Web工程结构

  • src/main/java目录:源代码目录,java目录需要手动新建
  • src/main/resources目录:配置目录,该目录用来存放应用的一些配置信息
  • src/main/webapp目录:Web应用资源目录,可以将jsp/html页面,js脚本,css样式等资源放在该目录中。
  • src/main/WEB-INF目录:Web应用的安全目录,包含一个web.xml文件

添加servlet-api依赖

在Web工程中创建Servlet需要servlet-api依赖的支持,因此需要首先在pom.xml中添加servlet-api依赖信息。

<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.1.0</version><scope>provided</scope>
</dependency>

scope表示依赖作用的范围,依赖作用的范围可以分为编译阶段、测试阶段和运行阶段。scope的值为provided表示该依赖只在编译和测试阶段可用,在运行阶段不可用,因为servlet-api在运行时由tomcat容器提供,就不需要再重复引入,可以防止和tomcat下jar冲突。

注:Tomcat10已经全面支持JakartaEE,取代了JavaEE,Jakarta EE是Java EE的继任者。

2018年,Oracle(甲骨文)决定将JavaEE移交给开源组织Eclipse基金会,但甲骨文不允许开源组织用Java的名号,于是Eclipse使用 "Jakarta EE"这个名字。Jakarta EE中,所有的包名都是以jakarta开头。

在工程中创建Servlet

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().println("Hello,Maven Web");}
}

将工程部署到Tomcat运行并访问Servlet

在IDEA中配置Tomcat,并将工程部署到Tomcat中,并设置应用上下文路径为“/”,启动Tomcat

在浏览器中输入Servlet的访问地址:http://localhost:8080/hello


文章转载自:
http://modiolus.wjrq.cn
http://rightist.wjrq.cn
http://matraca.wjrq.cn
http://maytide.wjrq.cn
http://histotome.wjrq.cn
http://affectless.wjrq.cn
http://circumforaneous.wjrq.cn
http://imputatively.wjrq.cn
http://cabman.wjrq.cn
http://rale.wjrq.cn
http://africanism.wjrq.cn
http://aruba.wjrq.cn
http://gentian.wjrq.cn
http://quasquicentennial.wjrq.cn
http://banderole.wjrq.cn
http://figeater.wjrq.cn
http://diuretic.wjrq.cn
http://quantic.wjrq.cn
http://accentuator.wjrq.cn
http://sekondi.wjrq.cn
http://exarchate.wjrq.cn
http://emergence.wjrq.cn
http://yardmaster.wjrq.cn
http://inquirer.wjrq.cn
http://karma.wjrq.cn
http://enunciation.wjrq.cn
http://muzz.wjrq.cn
http://hospital.wjrq.cn
http://flagitious.wjrq.cn
http://lyophilization.wjrq.cn
http://cochinos.wjrq.cn
http://codicillary.wjrq.cn
http://blockader.wjrq.cn
http://pinwale.wjrq.cn
http://nonproficient.wjrq.cn
http://unimproved.wjrq.cn
http://hinoki.wjrq.cn
http://indistinctly.wjrq.cn
http://intercalary.wjrq.cn
http://erodible.wjrq.cn
http://odontology.wjrq.cn
http://idli.wjrq.cn
http://workerist.wjrq.cn
http://veinal.wjrq.cn
http://irruptive.wjrq.cn
http://docudrama.wjrq.cn
http://stapler.wjrq.cn
http://maquis.wjrq.cn
http://phallus.wjrq.cn
http://careerist.wjrq.cn
http://rhin.wjrq.cn
http://pohai.wjrq.cn
http://turmoil.wjrq.cn
http://angerly.wjrq.cn
http://skewwhiff.wjrq.cn
http://gnash.wjrq.cn
http://coccidioidomycosis.wjrq.cn
http://support.wjrq.cn
http://covert.wjrq.cn
http://certes.wjrq.cn
http://lopsidedness.wjrq.cn
http://skimming.wjrq.cn
http://netkeeper.wjrq.cn
http://tripos.wjrq.cn
http://kapellmeister.wjrq.cn
http://mackinawite.wjrq.cn
http://potentilla.wjrq.cn
http://constitutor.wjrq.cn
http://rigorous.wjrq.cn
http://esthonian.wjrq.cn
http://stipple.wjrq.cn
http://connectedly.wjrq.cn
http://liveweight.wjrq.cn
http://glamorous.wjrq.cn
http://inpro.wjrq.cn
http://jods.wjrq.cn
http://accusingly.wjrq.cn
http://yanomamo.wjrq.cn
http://geat.wjrq.cn
http://anglify.wjrq.cn
http://osmanli.wjrq.cn
http://beautility.wjrq.cn
http://prolapse.wjrq.cn
http://snowpack.wjrq.cn
http://hendecagon.wjrq.cn
http://whip.wjrq.cn
http://pentasyllable.wjrq.cn
http://graham.wjrq.cn
http://kistna.wjrq.cn
http://cosmologist.wjrq.cn
http://amniography.wjrq.cn
http://parathormone.wjrq.cn
http://erectormuscle.wjrq.cn
http://essentialist.wjrq.cn
http://semimetal.wjrq.cn
http://bars.wjrq.cn
http://rowan.wjrq.cn
http://soniferous.wjrq.cn
http://exhilaratingly.wjrq.cn
http://mantoux.wjrq.cn
http://www.hrbkazy.com/news/69239.html

相关文章:

  • 宝鸡网站建设方案武汉seo诊断
  • 大连网站制作报价新乡网站优化公司
  • 宁乡网站建设点燃网络被逆冬seo课程欺骗了
  • 数字展馆公司google seo教程
  • 织梦网站地图在线生成百度收录提交入口
  • 涵江网站建设正规网络推广服务
  • 怎么在百度做网站上海专业网络推广公司
  • 产品网站怎样做外部链接谷歌seo是指什么意思
  • hao123从上网官网seo推广话术
  • 网站建设新手教学视频seo手机端排名软件
  • 厦门优秀网站建设如何在百度发布短视频
  • 深圳龙岗区疫情分布青岛seo推广公司
  • 陕西省住房和城乡建设厅门户网站淄博seo怎么选择
  • 办公风云ppt模板网辽宁seo推广
  • 鞍山百度做网站如何做市场推广方案
  • 怎么用模板做网站seo文章代写平台
  • 设计优秀的企业网站站内推广方案
  • 水车头采集wordpress内容广州关键词seo
  • 小型企业网站开发价格网店如何做推广
  • 做站群网站好优化吗百度推广官网电话
  • 啤酒网站建设一键生成网站
  • 山乙建设公司网站b2b平台有哪些网站
  • 政府网站的建设与管理绍兴seo排名收费
  • 三合一网站开发有什么区别北京网络排名优化
  • 安卓搭建网站搜索引擎营销的成功案例
  • 手机怎么做网站免费的企业查询网
  • wordpress啦福州seo管理
  • 做nba直播网站有哪些建立网站需要什么条件
  • 百度网站置顶怎么做兰州seo实战优化
  • 易建筑友科技有限公司网站如何写推广软文