王朝网络
分享
 
 
 

Mave项目管理实战演练

王朝java/jsp·作者佚名  2006-01-31
宽屏版  字体: |||超大  

Mave项目管理实战演练

作者:李俊杰

Mave项目是开放源代码公司Apache的又一力作,是项目管理的利器,是针对Ant项目的不足而开发的,除了拥有Ant的构建项目的特色外,还有项目高级管理工具,项目管理者可以轻松地了解项目的各种情况。

下面结合本人对Maven的了解和实践,特总结如下:

u Maven的下载和安装

u Maven的配置和管理

u Maven项目继承问题说明

u Maven和VSS集成

u Maven 定制javadoc

u 常用的命令goal

u Maven注意事项

Maven的下载和安装1) 下载Maven,在http://maven.apache.org/start/download.html地址下载Maven的最新版本(点击windows.exe,我的操作系统是windows),即到如下下载地址 http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-1.0.2.exe,我使用Http下载(点击http://apache.justdn.org/maven/binaries/maven-1.0.2.exe)下载到本地。(在网上看到许多网友下载Maven失败,所以加以详细说明)

2) 安装Maven,如果你的机器上没有安装j2sdk,安装将j2sdk,然后设置java-home(windows:我的电脑(右键)->属性->高级->环境变量->用户变量->新建(如:java-home C:/j2sdk1.4.2_01)),然后就可以直接运行maven-1.0.2.exe顺利安装。

3) 设置maven-home,类似于设置java-home,根据Maven的安装路径(${maven-home})设置如 maven-home d:/Maven1.02

4) 汉化Maven的dos控制台输出,用解压缩工具(如WinRar)打开${maven-home}/lib/maven.jar,找到并拖出org\apache\maven\messages\Message_zh_CN.properties,如果Message_zh_CN.properties文件的编码不是美国信息互换标准代码(ASCII),则使用java中的nativie2ascii命令把Message_zh_CN.properties转变为美国信息互换标准编码(ASCII)。并把转换后的文件名称也命名为Message_zh_CN.properties,然后拖入maven.jar的org\apache\maven\messages\中,覆盖原来的文件。转换步骤:打开dos界面,进入D:\bea\jdk141_03\bin>native2ascii Message_zh_CN.properties test.properties ,然后再把test.properties,重命名为Message_zh_CN.properties。

5) 开始->运行->cmd->进入dos界面,然后输入maven回车,如出现下面的情况,则说明安装成功。

Microsoft Windows 2000 [Version 5.00.2195]

(C) 版权所有 1985-2000 Microsoft Corp.

C:\Documents and Settings\lijj>maven

- __ __

- | \/ |__ _Apache__ ___

- | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~

- |_| |_\__,_|\_/\___|_||_| v. 1.0.2

-

- BUILD SUCCESSFUL

- Total time: 1 seconds

- Finished at: Thu Mar 03 16:55:06 CST 2005

-

Maven的相关配置和管理Maven的主要组件包括项目对象模型(Project Object Model POM),资源库(Repository)和目标(goals),现在根据实际例子来说明各个组件。其中项目对象模型一般是用project.xml来管理项目,而Repositroy主要提供项目所需要的jar文件,包括不同的版本,goals主要包括maven.xml和相关的插件(plugs)。

另外还包括属性文件如project.properties,build.properties.。属性文件的优先级是${user.home}/build.properties,${basedir}/build.properties,${basedir}/project.properties,(其中${user.home}表示本用户目录如C:\Documents and Settings\lijj,${basedir}表示项目project.properties所在目录,如D:\maventest)优先级前者最高,后者最低。即后者定义了某属性,前者也定义了该同名的属性,则以前者为准。由于Maven在项目管理方面有继承的概念,但不适合于build.properties文件。所以我们在项目管理中一般不用build.properties,只用project.properties文件来定义项目所需的属性。

创建项目象我们平常创建项目一样,创建一个工作目录(d:/maventest),并把相关项目文件(如jsp,java,properties,img,js,xml等等)copy到该目录下

创建项目所需要的lib(即.jar文件) 因为maven倡导的思想是通过网络来实现项目管理,因此使用CVS来控制版本,我们现在更多的是采用VSS(source safe)来控制版本。Maven的Repository就体现了集中管理资源的思想,根据项目所要用到的jar资源文件进行网络统一管理,而我们现在更趋向于使用本机的资源文件。

1)首先在项目的属性文件project.properties中定义

##本地资源位置

maven.repo.local=d:/Maven 1.0.2/repository

##是否使用远程repository

maven.repo.remote.enabled=false

2)其次在本地的资源库中创建该项目所要使用lib,如d:/Maven 1.0.2/repository/bjcy/jars,然后把该项目所用的jar 文件copy到该目录(d:/Maven 1.0.2/repository/bjcy/jars)下,weblogic.jar, appmodules.jar,opendata.jar等等,使用解压缩工具(如WinRar)打开这些jar文件,找META-INF目录下的MANIFEST.MF文件,如果没有找到表明没有版本说明,则修改文件名(如jarname.jar->jarname-.jar,在文件名后加一横线),如果找到MANIFEST.MF文件,打开后看到Manifest-Version: 1.0,则表示该jar文件的版本号为1.0,修改文件名(如jarname.jar->jarname-1.0.jar)

3) 最后在project.xml文件中写明该项目要依赖的资源

<!-- jar files the project is dependent on -->

<dependencies>

<dependency>

<groupId>bjcy</groupId>

<artifactId>weblogic</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>appmodules</artifactId>

</dependency>

。。。。。。。。。

</dependencies>

该文档表示weblogic.jar文件的版本是1.0,appmodules.jar文件没有版本说明,且所有要依赖的jar都在bjcy/jars下面。

project.xml文件说明project.xml是Maven项目管理的核心文件,主要说明项目的必须的内容

<?xml version="1.0" encoding="gb2312"?>

<!--encoding=”gb2312”表示支持中文-->

<project>

<!-- the version of maven's project object model -->

<pomVersion>3</pomVersion>

<!-- a unique name for this project -->

<id>prjcyspapp</id>

<!-- a short but descriptive name for the project -->

<name>prjcyspapp</name>

<!-- The version of the project under development, e.g.

1.1, 1.2, 2.0-SNAPSHOT -->

<currentVersion>1.0</currentVersion>

<!-- details about the organization that 'owns' the project -->

<organization>

<name>北京银河长天软件公司</name>

<url>http://www.apache.org/</url>

<logo>http://maven.apache.org/images/jakarta-logo-blue.gif</logo>

</organization>

<!-- the year the project started -->

<inceptionYear>2005</inceptionYear>

<package>prjcyspapp</package>

<logo>http://maven.apache.org/images/maven.jpg</logo>

<description>北京市朝阳区网上审批系统</description>

<!-- a short description of what the project does -->

<shortDescription>朝阳区网上审批在线服务系统是在北京市的统一领导下,按照统一规划、统一领导、改进服务、提高效率的原则,以推进行政审批制度改革、优化发展环境为目的,以服务企业、服务纳税人为根本宗旨,以北京市电子政务网络平台为依托,在现有朝阳区投资服务大厅网上咨询审批系统的基础上,进一步改造升级,优化整合资源,建立统一的、面向社会公众的朝阳区网上审批在线服务系统平台,提高办事效率和公共服务质量。</shortDescription>

<!-- the project home page -->

<url>http://maven.apache.org/reference/plugins/examples/</url>

<issueTrackingUrl>http://nagoya.apache.org/scarab/servlet/scarab/</issueTrackingUrl>

<siteAddress>jakarta.apache.org</siteAddress>

<siteDirectory>/www/maven.apache.org/reference/plugins/examples/</siteDirectory>

<distributionDirectory>/www/maven.apache.org/builds/</distributionDirectory>

<!-- the version control repository and http url for online access

the connection element has the form:

scm:<system>:<system specific connection string> -->

<repository>

<connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:maven-plugins/examples</connection>

<url>http://cvs.apache.org/viewcvs/maven-plugins/examples/</url>

</repository>

<!-- any mailing lists for the project -->

<mailingLists/>

<!-- who the developers are for the project -->

<developers>

<developer>

<name>安立</name>

<id>anli</id>

<email>anli@sohu.com</email>

<organization>北京银河长天软件公司</organization>

<roles><role>项目经理</role></roles>

</developer>

<developer>

<name>李俊杰</name>

<id>lijj</id>

<email>lijj@sina.com</email>

<organization>北京银河长天软件公司</organization>

<roles><role>开发人员</role></roles>

</developer>

<developer>

<name>马婕</name>

<id>maj</id>

<email>mj@sina.com</email>

<organization>北京银河长天软件公司</organization>

<roles><role>开发人员</role></roles>

</developer>

<developer>

<name>张秀梅</name>

<id>zhxm</id>

<email>zxm@sina.com</email>

<organization>北京银河长天软件公司</organization>

<roles><role>开发人员</role></roles>

</developer>

</developers>

<licenses>

<license>

<name>北京银河长天软件公司</name>

<url>http://www.opendata.com.cn</url>

<distribution>下载安装</distribution>

</license>

</licenses>

<!-- jar files the project is dependent on -->

<dependencies>

<dependency>

<groupId>bjcy</groupId>

<artifactId>weblogic</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>appmodules</artifactId>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>opendata</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>lenovo_userManager</artifactId>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>jfreechart</artifactId>

<version>0.9.15</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>jdom</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>mail</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>msg</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>Base64</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>log4j</artifactId>

<version>1.2.8</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>soap</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>xerces</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>FormServer</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>DataAccess_client</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>classes12</artifactId>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>axis</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>shareClient</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>saaj</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>jaxrpc</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>bjcy</groupId>

<artifactId>jcommon</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>apache</groupId>

<artifactId>log4j</artifactId>

<version>1.2.8</version>

</dependency>

</dependencies>

<!-- build information for the project -->

<build>

<nagEmailAddress>turbine-maven-dev@jakarta.apache.org</nagEmailAddress>

<!—相对于project.xml文件所在目录的源代码目录 -->

<sourceDirectory>develop/PrjBjcyEap/src</sourceDirectory>

<unitTestSourceDirectory>test/java</unitTestSourceDirectory>

<unitTest>

<includes>

<include>**/*Test.java</include>

</includes>

<excludes>

<exclude>**/NaughtyTest.java</exclude>

</excludes>

</unitTest>

<resources>

<resource>

<directory>src/conf</directory>

<includes>

<include>*.properties</include>

</includes>

</resource>

</resources>

</build>

</project>

project.properties文件说明##本地资源位置

maven.repo.local=d:/Maven 1.0.2/repository

##是否使用远程repository

maven.repo.remote.enabled=false

##产生的文档所应包含的xml声明头

maven.docs.omitXmlDeclaration=<?xml version="1.0" encoding="gb2312"?>

##生成文档的缺省编码 ISO-8859-1

maven.docs.outputencoding=gb2312

maven.xdoc.date=left

## maven.xdoc.version=${pom.currentVersion}

#maventest.dir=d:/maventest

##html格式报告的输出目录${basedir}是指maven.xml文件所在的目录

maven.docs.dest=${basedir}/docs

##xdocs文档转换成html后的输出目录

maven.gen.docs=${basedir}/docs/xmldocs

maven.build.dest=${basedir}/develop/PrjBjcyEap/classes

maven.plugin.dir=${maven.home}/plugins

##测试环境IP

test.host=192.168.1.249

##测试环境的外网部署目录

test.ww.deploy.dir=e$/maventest/develop/PrjBjcyEap/wwdomain/applications/bjcyww

##测试环境的内网部署目录

test.nw.deploy.dir=e$/maventest/develop/PrjBjcyEap/nwdomain/applications/bjcynw

##本机外网环境部署目录

local.ww.deploy.dir=${basedir}/develop/PrjBjcyEap/wwdomain/applications/bjcyww

##本机外网环境部署目录

local.nw.deploy.dir=${basedir}/develop/PrjBjcyEap/nwdomain/applications/bjcynw

deploy.attr=local

maven.xml文件说明<?xml version="1.0" encoding="gb2312"?>

<project default="project:manage"

xmlns:maven="jelly:maven"

xmlns:j="jelly:core"

xmlns:util="jelly:util">

<!-- 一般项目分为四个里程碑:初始化、精化、构建、部署-->

<goal name="project:manage">

<attainGoal name="project:construction"/>

<attainGoal name="prj:local_deploy"/>

<attainGoal name="prj:remote_deploy"/>

<attainGoal name="project:transition"/>

</goal>

<!--

远程部署

-->

<goal name="prj:remote_deploy">

<attainGoal name="project:remote_ww_deploy"/>

<attainGoal name="project:remote_nw_deploy"/>

</goal>

<!--

本地部署

-->

<goal name="prj:local_deploy">

<attainGoal name="project:local_nw_deploy"/>

<attainGoal name="project:local_ww_deploy"/>

</goal>

<goal name="project:deploy">

<!-- 清空 -->

<attainGoal name="clean"/>

<!-- 编译 -->

<attainGoal name="java:compile"/>

<!-- 部署 -->

<j:choose>

<!— 必须把从project.properties中得到的属性值进行赋值到新的变量中 -->

<j:set var="action" value="${deploy.attr}"/>

<!-- 本地部署 -->

<echo>本地部署开始!</echo>

<copy todir="${local.nw.deploy.dir}/WEB-INF/classes">

<fileset dir="${maven.build.dest}" include="*.*"/>

</copy>

<copy todir="${local.ww.deploy.dir}/WEB-INF/classes">

<fileset dir="${maven.build.dest}" include="*.*"/>

</copy>

<echo>本地部署结束!</echo>

<!-- 远程部署 -->

<j:if test="${action == 'remote'}">

<echo>远程部署开始!</echo>

<copy todir="\\${test.host}\${test.ww.deploy.dir}">

<fileset dir="${local.ww.deploy.dir}" include="*.*"/>

</copy>

<copy todir="\\${test.host}\${test.nw.deploy.dir}">

<fileset dir="${local.nw.deploy.dir}" include="*.*"/>

</copy>

<echo>远程部署结束!</echo>

</j:if>

</j:choose>

</goal>

<!--完成一些初始化工作 -->

<goal name="project:inception">

<attainGoal name="clean"/>

</goal>

<!-- 主要是xdoclet 产生各种文件-->

<goal name="project:elaboration">

<!--attainGoal name="project:ejb-xdoclet"/ -->

</goal>

<!-- 编译项目-->

<goal name="project:construction">

<!-- 调用war 插件原来是 war:war -->

<attainGoal name="java:compile"/>

</goal>

<!--

对编译好的项目进行组合准备部署

-->

<goal name="project:transition">

</goal>

<goal name="project:report">

<echo>eeeeee</echo>

</goal>

<!--

本机部署内网

-->

<goal name="project:local_nw_deploy">

<copy todir="${local.nw.deploy.dir}/WEB-INF/classes">

<fileset dir="${maven.build.dest}" include="*.*" exclude="${maven.build.dest}/com/accelio/ces/app/App.class"/>

</copy>

</goal>

<!--

本机部署外网

-->

<goal name="project:local_ww_deploy">

<copy todir="${local.ww.deploy.dir}/WEB-INF/classes">

<fileset dir="${maven.build.dest}" include="*.*" exclude="${local.nw.deploy.dir}/com/*.*"/>

</copy>

</goal>

<!--

远程部署时的todir要首先以“\\”开头,且不要写入到project.properties,然后引用,那样会出错的。并且在远程部署前要首先登录远程的机器。

-->

<!--

远程部署外网

-->

<goal name="project:remote_ww_deploy">

<copy todir="\\${test.host}\${test.ww.deploy.dir}">

<fileset dir="${local.ww.deploy.dir}" include="*.*"/>

</copy>

</goal>

<!--

远程部署内网

-->

<goal name="project:remote_nw_deploy">

<copy todir="\\${test.host}\${test.nw.deploy.dir}">

<fileset dir="${local.nw.deploy.dir}" include="*.*" />

</copy>

</goal>

</project>

Maven项目继承问题说明

Maven项目继承是类似于对象继承的机制来进行项目管理,其中project.xml文件,maven.xml文件和project.properties文件都可以继承,即父项目中的上述文件中声明的命令goal,属性等,都可以在子项目中覆盖,如果不覆盖,则调用父项目的相关命令或者属性。

1)子项目中的project.xml

<extend>D:/maventest/project.xml</extend>

表示该项目是从D:/maventest项目继承过来的,该目录可以是相对目录,相对于子项目的project.xml文件所在的目录。

2)子项目中的maven.xml

对父项目中的goal的继承有两种方式,一种是覆盖父项目中的goal,另外一种是对父项目的goal进行扩展,如

<!—

pregoal表示在父项目中的同名goal 的前面要执行的goal

postgoal表示在父项目中的同名goal 的后面要执行的goal

-->

<preGoal name="project:report">

<attainGoal name="test1"/>

</preGoal>

<postGoal name="project:report">

<attainGoal name="test2"/>

</postGoal>

<goal name="test1">

<echo>pregoal</echo>

</goal>

<goal name="test2">

<echo>postgoal</echo>

</goal>

Maven和VSS集成Maven项目管理的主要思想是网络集中管理,所以Maven主要由CVS来进行版本控制,而我们现在主要使用VSS(Source Safe)来进行版本管理。为了能够在项目管理中使用VSS来控制版本,下面提供一个集成的方法,在maven.xml中添加下面的goal:

<!--从Vss服务器取得代码流程-->

<goal name="testvss">

<!--

主要参数的含义:

localPath : get下来的代码存放位置

recursive=”true” : 获取某目录下的所有文件(包含下面所有子目录的文件)

login : SourceSafe用户名,密码

vsspath : SourceSafe上要get文件的目录

ssdir : 本机上SourceSafe的安装目录下的运行目录(右键SourceSafe启动图标->属性->快捷方式->目标)

serverPath : SourceSafe所在目录

writable=false : get的文件都是只读的

autoresponse="N" : 如果本地有可写文件且和SourceSafe上有重名文件,则不覆盖

-->

<vssget

localPath="e:/test/src"

recursive="true" login="lijunjie,lijj"

vsspath="/朝阳审批/app/src"

ssdir="E:\software\vss\win32\"

serverPath="\\192.168.1.188\SourceSafe\"

writable="false"

autoresponse="N"

quiet="true"/>

<vssget localPath="e:/test/nwdomain"

recursive="true" login="lijunjie,lijj"

vsspath="/朝阳审批/app/nwdomain"

ssdir="E:\software\vss\win32\"

serverPath="\\192.168.1.188\SourceSafe\"

writable="false"

autoresponse="N"

quiet="true"

/>

<vssget localPath="e:/test/wwdomain"

recursive="true" login="lijunjie,lijj"

vsspath="/朝阳审批/app/wwdomain"

ssdir="E:\software\vss\win32\"

serverPath="\\192.168.1.188\SourceSafe\"

writable="false"

autoresponse="N"

quiet="true"/>

</goal>

Maven 定制javadoc

Maven本身有javadoc goal,但是它的源文件,产生javadoc文件的目录都必须是默认的,为此灵活定制javadoc,特别在maven.xml中写如下的goal:

<!-- 产生javadoc -->

<!--

主要参数说明:

packagenames :要产生javadoc的包名

sourcepath :源文件所在位置,相对于project.xml文件的相对目录

destdir :产生javadoc文件的目录,绝对目录

-->

<goal name="project:javadoc" >

<javadoc packagenames="cn.*,com.*" sourcepath="develop/PrjBjcyEap/src"

private="yes" defaultexcludes="yes" destdir="${basedir}/javadoc">

</javadoc>

</goal>

常用的命令goaljava:compile :编译所有 Java 源代码。

jar :创建已编译的源代码的 JAR 文件

site:generate : 产生相应的站点文件

Maven注意事项

本文档只是根据现在的某一个项目为例子来说明Maven项目管理,请读者根据不同项目的要求改变相应的参数。

1) 在父项目中的部署goal(maven project:deploy)中,首先从project.properties文件中获取deploy.attr属性的值,根据属性值来判断是远程部署还是本地部署。从而执行相应的goal

2) 远程部署时要首先登录要部署的目的机器,否则出现错误的用户名和密码错误。

3) 注意project.xml,Maven.xml,project.properties在同一目录下。

4) Maven的操作现在还是用命令行,进入项目所在的目录,即project.xml文件所在的目录,如:D:\sonmaventest>,然后输入maven ,再输入要执行的goal,如 :D:\sonmaventest>maven project:deploy

联系作者:

email: lijj_72@hotmail.com

手机:13552137963

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有