最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

手把手教你寫(xiě)Maven的archetype項(xiàng)目腳手架

 更新時(shí)間:2021年08月30日 11:40:14   作者:阿豪聊干貨  
本文主要介紹了Maven的archetype項(xiàng)目腳手架,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、背景

  maven是一個(gè)很好的代碼構(gòu)建工具,采用“約定優(yōu)先于配置”的原則進(jìn)行項(xiàng)目管理,相信很多的java開(kāi)發(fā)者應(yīng)該都了解maven并可能在工作當(dāng)中都是通過(guò)maven來(lái)管理項(xiàng)目的,在創(chuàng)建的項(xiàng)目的時(shí)候,我們往往會(huì)使用maven內(nèi)置的項(xiàng)目骨架也就是archetype來(lái)快速生成項(xiàng)目結(jié)構(gòu)。但是在一個(gè)團(tuán)隊(duì)做開(kāi)發(fā)的過(guò)程中,可能僅僅依靠maven預(yù)先提供的archetyp可能是不夠的,團(tuán)隊(duì)之間協(xié)作有自己的定義方式,每個(gè)人的結(jié)構(gòu)定義風(fēng)格也不盡相同,在這樣的背景下我們有必要去定義一個(gè)統(tǒng)一的代碼骨架供團(tuán)隊(duì)使用,這樣做的好處是當(dāng)團(tuán)隊(duì)需要開(kāi)始一個(gè)新項(xiàng)目的時(shí)候,可以利用自定義的maven骨架一鍵生成項(xiàng)目。

  archetype是在maven-archetype-plugin插件執(zhí)行g(shù)enerate目標(biāo)的時(shí)候進(jìn)行配置的,我們經(jīng)常使用到maven的內(nèi)嵌的骨架包括:maven-archetype-webapp、maven-archetype-quickstart。前者用來(lái)快速搭建一個(gè)web工程項(xiàng)目,后者用來(lái)快速搭建一個(gè)普通的java工程項(xiàng)目。

二、手寫(xiě)普通單模塊項(xiàng)目的archetype

單模塊項(xiàng)目的archetype腳手架項(xiàng)目的結(jié)構(gòu)

上圖中的各個(gè)文件詳解:

  • 根目錄beast-archetype下的pom.xml和一般的maven項(xiàng)目一樣主要定義archetype項(xiàng)目的坐標(biāo)等信息。
  • 所有的項(xiàng)目骨架內(nèi)容都集中在src/main/resources/archetype-resources文件夾下。
  • archetype-resources中的pom.xml定義了待生成項(xiàng)目的pom文件的內(nèi)容,/src/main/java、/src/test/java中分別定義了待生成項(xiàng)目中相應(yīng)目錄下的內(nèi)容
  • /src/main/resources/META-INF/maven/archetype-metadata.xml中定義相關(guān)的元數(shù)據(jù)描述(其中該文件的位置固定為resources/META-INF/maven文件夾下,且名稱(chēng)固定為archetype-metadata.xml)。

1.beast-archetype/pom.xml內(nèi)容如下

<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>com.thebeastshop</groupId>
    <artifactId>beast-archetype</artifactId>
    <version>1.1</version>
    <packaging>jar</packaging>

    <name>beast-archetype</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>beast-archetype</finalName>
    </build>
</project>

2.src/main/resources/archetype-resources/pom.xml內(nèi)容如下:

<?xml version="1.0"?>
<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>${groupId}</groupId>
    <artifactId>${artifactId}</artifactId>
    <version>${version}</version>
    <name>${artifactId}</name>
    
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
             <plugin> 
                 <artifactId>maven-deploy-plugin</artifactId> 
                 <configuration> 
                    <skip>true</skip> 
                 </configuration> 
             </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

其中:上面${}標(biāo)識(shí)的變量都是通過(guò)maven中的命令行傳進(jìn)來(lái)的,如:mvn archetype:generate -DgroupId=com.thebeastshop

3.src/main/resources/META-INF/maven/archetype-metadata.xml內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor  name="beast-archetype"
        xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0
            http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd">

    <requiredProperties>
        <requiredProperty key="package-name" />
    </requiredProperties>

    <fileSets>
        <fileSet filtered="true" packaged="true" encoding="UTF-8">
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </fileSet>
        <fileSet filtered="true" encoding="UTF-8">
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.*</include>
            </includes>
        </fileSet>
        <fileSet filtered="true" packaged="true" encoding="UTF-8">
            <directory>src/test/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </fileSet>
        <fileSet encoding="UTF-8">
            <directory>src/test/resources</directory>
            <includes>
                <include>**/*.*</include>
            </includes>
        </fileSet>
    </fileSets>
</archetype-descriptor>

說(shuō)明:

  • packaged="true"標(biāo)識(shí)src/main/resources/archetype-resources/src/main/java中對(duì)應(yīng)的內(nèi)容是否要放入到package中,比如package為com.thebeastshop,那么如果該屬性為true,則對(duì)應(yīng)的java文件會(huì)放到com/thebeastshop文件夾下,也就是包路徑下。
  • filtered="true"標(biāo)識(shí)下面提到的${}是否要進(jìn)行替換

4.src/main/resources/archetype-resources/src/main/java/Demo.java內(nèi)容如下:

package ${package};

public class Demo{
    public static void main( String[] args )
    {
        System.out.println( "Hello My Archetype!" );
    }
}

5.這樣我們就手寫(xiě)好了一個(gè)自定義的maven的archetype骨架項(xiàng)目,我們只需要通過(guò)mvn clean install 命令把該jar包安裝到本地倉(cāng)庫(kù),然后通過(guò)本地倉(cāng)庫(kù)中的該jar包來(lái)生成一個(gè)項(xiàng)目看看效果,使用如下命令:

 mvn archetype:generate 
  -DgroupId=comthebeastshop 
  -DartifactId=beast-test 
  -Dpackage="com.thebeastshop.test" 
  -DarchetypeGroupId=com.thebeastshop 
  -DarchetypeArtifactId=beast-archetype -DarchetypeVersion=1.1 -X -DarchetypeCatalog=local

三、手寫(xiě)maven多module的項(xiàng)目骨架archetype

1.多模塊骨架項(xiàng)目的項(xiàng)目結(jié)構(gòu)

這跟單模塊項(xiàng)目區(qū)別不大,但是有幾個(gè)概念需要說(shuō)明:

  • “__rootArtifactId__”占位符會(huì)被parent項(xiàng)目的artifactId替換
  • ${rootArtifactId}也會(huì)被parent項(xiàng)目的artifactId替換
  • src/main/resources/archetype-resources里必須要有一個(gè)頂級(jí)pom文件(如果是單工程就是工程pom文件),同時(shí)子文件夾代表了模塊定義

2.模板工程定義描述文件

META-INF/maven/archetype-metadata.xml

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor  name="beast-archetype"
        xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0
            http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd">

    <requiredProperties>
        <requiredProperty key="groupId">
            <defaultValue>com.thebeastshop</defaultValue>
        </requiredProperty>
        <requiredProperty key="artifactId">
            <defaultValue>test</defaultValue>
        </requiredProperty>
        <requiredProperty key="package">
            <defaultValue>com.thebeastshop.test</defaultValue>
        </requiredProperty>
    </requiredProperties>

    <modules>
        <module id="${rootArtifactId}-api" name="${rootArtifactId}-api" dir="__rootArtifactId__-api">
            <fileSets>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/test/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/test/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
            </fileSets>
        </module>
        <module id="${rootArtifactId}-core" name="${rootArtifactId}-core" dir="__rootArtifactId__-core">
            <fileSets>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/test/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/test/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
            </fileSets>
        </module>
        <module id="${rootArtifactId}-dao" name="${rootArtifactId}-dao" dir="__rootArtifactId__-dao">
            <fileSets>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/test/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                        <include>mapper</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/test/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
            </fileSets>
        </module>
        <module id="${rootArtifactId}-main" name="${rootArtifactId}-main" dir="__rootArtifactId__-main">
            <fileSets>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/test/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/test/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/main/assembly</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/main/bin</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
            </fileSets>
        </module>
        <module id="${rootArtifactId}-mybatisGen" name="${rootArtifactId}-mybatisGen" dir="__rootArtifactId__-mybatisGen">
            <fileSets>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet filtered="true" encoding="UTF-8" packaged="true">
                    <directory>src/test/java</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
                <fileSet encoding="UTF-8">
                    <directory>src/test/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                    </includes>
                </fileSet>
            </fileSets>
        </module>
    </modules>
</archetype-descriptor>

屬性變量定義

<requiredProperties>
    <requiredProperty key="groupId">
        <defaultValue>com.thebeastshop</defaultValue>
    </requiredProperty>
    <requiredProperty key="artifactId">
        <defaultValue>test</defaultValue>
    </requiredProperty>
    <requiredProperty key="package">
        <defaultValue>com.thebeastshop.test</defaultValue>
    </requiredProperty>
</requiredProperties>

這些屬性可以在資源元文件里的任意一個(gè)文件里通過(guò)${var}來(lái)引用,所以的元文件最終都可以選擇通過(guò)velocity引擎來(lái)執(zhí)行替換后生成。
默認(rèn)的屬性有:groupId,artifactId,packeage,version等

項(xiàng)目子模塊定義

<modules>
    <module id="${rootArtifactId}-api" name="${rootArtifactId}-api" dir="__rootArtifactId__-api">
        ...
    </module>
    <module id="${rootArtifactId}-core" name="${rootArtifactId}-core" dir="__rootArtifactId__-core">
        ...
    </module>
    <module id="${rootArtifactId}-dao" name="${rootArtifactId}-dao" dir="__rootArtifactId__-dao">
        ...
    </module>
    <module id="${rootArtifactId}-main" name="${rootArtifactId}-main" dir="__rootArtifactId__-main">
        ...
    </module>
    <module id="${rootArtifactId}-mybatisGen" name="${rootArtifactId}-mybatisGen" dir="__rootArtifactId__-mybatisGen">
        ...
    </module>
</modules>

module有三個(gè)屬性,解釋如下:

  • id :定義子模塊工程的artifactId.
  • dir :子模塊工程源文件在archetype-resources里對(duì)應(yīng)的directory.
  • name :子模塊的名字.

3.子模塊pom.xml定義如下(以core模塊為例):

<?xml version="1.0"?>
<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>
    <parent>
        <groupId>com.thebeastshop</groupId>
        <artifactId>${rootArtifactId}</artifactId>
        <version>${version}</version>
    </parent>

    <artifactId>${artifactId}</artifactId>
    <name>${artifactId}</name>
    
    <dependencies>
        <dependency>
            <groupId>com.thebeastshop</groupId>
            <artifactId>${rootArtifactId}-api</artifactId>
            <version>${api.version}</version>
        </dependency>
        <dependency>
            <groupId>com.thebeastshop</groupId>
            <artifactId>${rootArtifactId}-dao</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
             <plugin> 
                 <artifactId>maven-deploy-plugin</artifactId> 
                 <configuration> 
                    <skip>true</skip> 
                 </configuration> 
             </plugin>
        </plugins>
    </build>
</project>

其中${rootArtifactId}就代表父項(xiàng)目的artifactId.

4.我們和單模塊腳手架工程一樣,通過(guò)mvn clean install命令把該腳手架項(xiàng)目安裝到本地maven倉(cāng)庫(kù),然后就可以使用該項(xiàng)目來(lái)快速生成新項(xiàng)目結(jié)構(gòu)了,生成命令如下:

mvn archetype:generate 
  -DgroupId=com.thebeastshop 
  -DartifactId=ddd 
  -Dversion=1.0.0-SNAPSHOT
  -DarchetypeGroupId=com.thebeastshop 
  -DarchetypeArtifactId=beast-archetype 
  -DarchetypeVersion=1.3-SNAPSHOT -X -DarchetypeCatalog=local

我們就會(huì)看到生成好的項(xiàng)目結(jié)構(gòu)如下:

多模塊項(xiàng)目腳手架源碼:https://github.com/hafizzhang/beast-archetype

四、總結(jié)

到此這篇關(guān)于手把手教你寫(xiě)Maven的archetype項(xiàng)目腳手架的文章就介紹到這了,更多相關(guān)Maven archetype項(xiàng)目腳手架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解利用SpringMVC攔截器控制Controller返回值

    詳解利用SpringMVC攔截器控制Controller返回值

    這篇文章主要介紹了詳解利用SpringMVC攔截器控制Controller返回值,通過(guò)定義一個(gè)StringResult注解,在訪問(wèn)方法的時(shí)候返回StringResult中的內(nèi)容,有興趣的可以了解一下。
    2017-01-01
  • springboot枚舉類(lèi)型傳遞的步驟

    springboot枚舉類(lèi)型傳遞的步驟

    這篇文章主要介紹了springboot枚舉類(lèi)型傳遞的步驟,幫助大家更好的理解和學(xué)習(xí)使用springboot,感興趣的朋友可以了解下
    2021-04-04
  • JAVA?biginteger類(lèi)bigdecimal類(lèi)的使用示例學(xué)習(xí)

    JAVA?biginteger類(lèi)bigdecimal類(lèi)的使用示例學(xué)習(xí)

    這篇文章主要為大家介紹了JAVA?biginteger類(lèi)bigdecimal類(lèi)的使用示例學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Java數(shù)組的特性_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java數(shù)組的特性_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    數(shù)組是基本上所有語(yǔ)言都會(huì)有的一種數(shù)據(jù)類(lèi)型,它表示一組相同類(lèi)型的數(shù)據(jù)的集合,具有固定的長(zhǎng)度,并且在內(nèi)存中占據(jù)連續(xù)的空間。在C,C++等語(yǔ)言中,數(shù)組的定義簡(jiǎn)潔清晰,而在Java中確有一些會(huì)讓人迷惑的特性。本文就嘗試分析這些特性
    2017-04-04
  • Java并發(fā)編程Semaphore計(jì)數(shù)信號(hào)量詳解

    Java并發(fā)編程Semaphore計(jì)數(shù)信號(hào)量詳解

    這篇文章主要介紹了Java并發(fā)編程Semaphore計(jì)數(shù)信號(hào)量詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • 關(guān)于IDEA配置Hibernate中遇到的問(wèn)題解決

    關(guān)于IDEA配置Hibernate中遇到的問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于IDEA配置Hibernate中遇到的問(wèn)題,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 淺談SpringBoot中properties、yml、yaml的優(yōu)先級(jí)

    淺談SpringBoot中properties、yml、yaml的優(yōu)先級(jí)

    優(yōu)先級(jí)低的配置會(huì)被先加載,所以?xún)?yōu)先級(jí)高的配置會(huì)覆蓋優(yōu)先級(jí)低的配置,本文就來(lái)介紹一下SpringBoot中properties、yml、yaml的優(yōu)先級(jí),感興趣的可以了解一下
    2023-08-08
  • 手把手教你使用Java實(shí)現(xiàn)在線生成pdf文檔

    手把手教你使用Java實(shí)現(xiàn)在線生成pdf文檔

    在實(shí)際的業(yè)務(wù)開(kāi)發(fā)的時(shí)候,常常會(huì)需要把相關(guān)的數(shù)據(jù)信息,通過(guò)一些技術(shù)手段生成對(duì)應(yīng)的PDF文件,然后返回給用戶(hù)。本文將手把手教大家如何利用Java實(shí)現(xiàn)在線生成pdf文檔,需要的可以參考一下
    2022-03-03
  • eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決

    eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決

    這篇文章主要介紹了eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Jmeter生成UUID作為唯一標(biāo)識(shí)符過(guò)程圖解

    Jmeter生成UUID作為唯一標(biāo)識(shí)符過(guò)程圖解

    這篇文章主要介紹了Jmeter生成UUID作為唯一標(biāo)識(shí)符過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

准格尔旗| 工布江达县| 上犹县| 怀集县| 体育| 内黄县| 湖口县| 衢州市| 航空| 青川县| 铜梁县| 手游| 曲松县| 得荣县| 花莲市| 岳西县| 嵩明县| 霸州市| 新余市| 郧西县| 巴楚县| 奈曼旗| 泰来县| 桂东县| 平南县| 无极县| 江都市| 巨鹿县| 桦甸市| 喀喇沁旗| 泗洪县| 大石桥市| 元氏县| 伊宁县| 增城市| 洪泽县| 邢台市| 新宁县| 兴安盟| 荆州市| 略阳县|