[转载]GWT开端
来源:互联网 发布:南平网络安全教育平台 编辑:程序博客网 时间:2024/06/16 00:28
原文地址:GWT开端作者:msnblog
以前的基于GWT的项目中广泛使用的还是gwt-windows-1.5.3这个版本的。
1.下载地址:
http://code.google.com/webtoolkit/download.html
2.GWT Designer + WindowBuilder Pro
http://www.instantiations.com/
3.一本牛书:Eclipse Plug-ins
http://www.qualityeclipse.com/
4.下载Plugin for Eclipse在线安装,最好全选SDK(GWT2.0.4 + AppEngine1.3.8) + GDT plugin模式.如果装SDK的话,会自动
下载两个SDK的插件,它们都是windows版本的SDK:
com.google.appengine.eclipse.sdkbundle.1.3.8_1.3.8.v201010161055
com.google.gwt.eclipse.sdkbundle.2.0.4_2.0.4.v201006301254
一定要安装在J2ee版Eclipse3.5下面,那个普通的Eclipse中缺失了太多的依赖插件了。
Eclipse Galileo Sr2 Packages---Eclipse IDE for Java EE Developers, (190 MB)
http://www.eclipse.org/downloads/packages/release/galileo/sr2
在2010-10-28时,又做了更新,当前的:
Google Plugin for Eclipse 3.5----1.4.0.v201010280047
Google App Engine Java SDK 1.3.8----1.3.8.v201010161055
Google Web Toolkit SDK 2.1.0----2.1.0.v201010280047
对GWT而言,它的作用就是“新建工程/工程属性/编绎/运行配置”这三个作用,不具有其它的任何作用了。
运行配置是com.google.gwt.dev.DevMode模式的时候,需要安装下面的firefox插件。
gwt-dev-plugin.xpi(支持Firefox/IE/Chrome三个版本的)
在运行配置中的Arguments/Classpath这两个选项卡很重要,在工程属性中Entry Point Modules这个很重要。
5.编绎生成的mygwt.nocache.js和*.cache.html可以不用细看,因为GWT其主要目的,就是不需要你关注JS的。
6.gwt-servlet.jar, gwt-user.jar, gwt-dev.jar三者之间的关系。在实际deploy的时候,只需要gwt-servlet.jar就OK了。
7.可以导出成jar包(再改war包,因为它包含了classes目录了)。
8.不需要编绎就可以运行,还可以Debug.
9.有Shell/Dev/Deploy三种运行方式。
10.可以新建5种新的类型的文件:
Module----新创建一个Module,会生成tan.gwt.xml
Entry Point Class----新建一个页面入口,会生成onModuleLoad()方法,且会注册在tan.gwt.xml
HTML Page----新建一个主页面文件,对应于tan.gwt.xml这个模块的。
UiBinder ---组合多个UI元素(多个Button/Text)为一个界面元素。
ClientBundle --- 主要用来访问资源文件(Image)
GWT中实现跳转及不同entrypoint怎么互相访问
http://yaoyanzhu.javaeye.com/blog/434196
1.在Compile的时候,最关键的是MyGWT.gwt.xml这个文件,其中的<module rename-to='wyang'>,是编绎后生成文件的目录。
而这个主页面文件MyGWTwarMyGWT.html是没有办法再生的,必须要手工进行修改,MyGWTwarMyGWT.css也是一样的,需要手工改。
2.在主页面文件MyGWTwarMyGWT.html中,最重要的是这个引入这个JS文件:
<script type="text/javascript" language="javascript" src="mygwt/mygwt.nocache.js"></script>
3.运行的模式:
com.google.gwt.dev.DevMode --->推荐这种方式运行。注意Web Application launch config中的Argument参数
com.google.gwt.dev.GWTShell
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/Wo3y7NEq2BlRYS1a5WYxuQ==/3740802440501467109.jpg)
4.在使用eclipse-jee-galileo-SR2-win32的"Server + Dynamic Web Project"时, Server最多只支持Tomcat6.0.
布署时会把完整的web文件拷贝到这个目录下面:
D:TDDOWNLOADeclipse-jee-galileo-SR2-win32workspace.metadata.pluginsorg.eclipse.wst.server.coretmp0
在server.xml文件中有一个<Host/>结点,<Host/>下面是<Context/>, 这个Context就是真正的Dynamic Web Project.
5.在添加了额外的Web Module以后,需要重新Publish和Restart Server, 这样,新添加的那个External Web Module才能起作用
注意,这个Web Module的内容不会拷贝到.metadata.pluginsorg.eclipse.wst.server.coretmp0这个目录下面的,意味着,任何改
变将会立即生效。
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/9_86UsVZ3n8Z2j5zYvKRFQ==/3740802440501467110.jpg)
6.如果工程名为MyGWT,编绎后会生成6个cache.html文件:
5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html------> firefox将会使用这个文件。
EA70C7B7151DF4DBCA138470D3530ECB.cache.html------> IE将会使用这个文件。
7.上面的6个cache.html文件,分别对应于6个不同的浏览器,属于编绎过程中的参数控制的,至少需要30秒:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/sYJS3tyANFoYuSqPjVOJAQ==/3740802440501467111.jpg)
8.只支持firefox的GWT编绎文件,至少需要下面三个:
MyGWT.html ----》mygwt.nocache.js -----》5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html
如下图:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/i-wqrJ9m-Wg3JlRIWujE8Q==/3740802440501467112.jpg)
9.辅助使用alert()或者是firefox的JS debug的插件,来对mygwt.nocache.js进行剖析:
得出:
M = L + Vb中的L=5AB8EAF1DAFE5B0D49F403D5626DC4E0 Vb=.cache.html M=5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html
另外:
mygwt.onScriptLoad = function()将会被自动执行。
function C()中的c.gwtOnLoad(z, R, t, y);是很重要的一个调用。
10.5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html里面几乎全部都是JS。
真正的ajax原来是完全用JS来强写body部分的(body部分用div + css)
11.直接访问http://localhost:8080/mygwt/mygwt/5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html是不能正常显示出结果的。因为没有初始化的页面环境MyGWT.html。
12.firefox是gecko ['gek?u] n. 壁虎系列的浏览器。
可以使用它的Proxy Port方式来启用TCP/IP Monitor的view进行web访问的代理监听:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/Nkv63aYvMpKP-rD-P_SNmg==/3740802440501467113.jpg)
13.Eclipse Java EE IDE for Web Developers.也即:eclipse-jee-galileo-SR2-win32
---在config.ini中:
osgi.framework=file:plugins/org.eclipse.osgi_3.5.2.R35x_v20100126.jar
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/eiX1gFbDtlCze9waTKQl7g==/3740802440501467114.jpg)
14.使用firefox进行JS的调试:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/K9Fyj_fsmBpIcx1D9ar1CA==/3740802440501467115.jpg)
poster-extension
http://code.google.com/p/poster-extension/
tamperdata
http://tamperdata.mozdev.org/
Firebug----对JS进行debug:
https://addons.mozilla.org/zh-CN/firefox/addon/1843/?src=api
密码同步sync:
https://mozillalabs.com/sync/
15.关于share包下面的类,将要做client和server端双重验证,所以,不要访问JS,不然不支持server端了;不要访问File和DB,不然不支持client端了。参见FieldVerifier的类注释:
This class is in the
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/cmJyOMTKWXKs0dAZeG_epw==/3740802440501467116.jpg)
16.关于GWT的配置文件,以及代码入口问题:
MyGWT.gwt.xml---》<entry-point class='org.wyang.client.MyGWT'/>--》interface EntryPoint----》void onModuleLoad();
另外,这个参数是设置compile的时候的引用到的package路径的:
<source path='client'/> ---->org.wyang.client
<source path='shared'/> ---->org.wyang.shared
17.常用的Widget以及主要的API:
Button
--addStyleName("sendButton");
--setEnabled(true);
--setFocus(true);
--addClickHandler(handler);
TextBox
--setFocus(true);
--selectAll();
--addKeyUpHandler(handler);
Label
--setText("");
HTML
--setText(textToServer);
--addStyleName("serverResponseLabelError");
--removeStyleName("serverResponseLabelError");
--setHTML(SERVER_ERROR);
RootPanel
--get("sendButtonContainer").add(sendButton);
DialogBox
--setText
--setAnimationEnabled(true);
--setWidget(dialogVPanel);
--hide();
--center();
VerticalPanel
--setHorizontalAlignment
--add
KeyUpEvent --- KeyUpHandler ---event.getNativeKeyCode() == KeyCodes.KEY_ENTER
ClickEvent --- ClickHandler
18.MyGWT.java中如果含有中文的话,需要save成UTF8编码,这样GWT编绎生成的JS中才可以正常在页面显示中文。
19.使用插件Run Web Application的功能时,Jetty是会对web.xml中的servlet进行检查的。----(Tomcat5.5不会进行检查)
-codeServerPort 9997 -port 8888
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/FrXg4wjdcNCTqE0RgokdmA==/3740802440501467117.jpg)
20.在进行客户端验证时,要把所用到的类的package添加到MyGWT.gwt.xml中,不然模块加载错误。(还有一个处理办法就是把这些类直接和client放在同一个包下)
21.在点击button后,要进行服务器端验证,必须要进行回调机制,不然不能生成JS代码。
常用的处理方法是:
@RemoteServiceRelativePath("checkLoginServlet")
public interface GreetService extends RemoteService{
boolean checkLogin(String username, String password);
}
因为有了RemoteService所以studio会提示生成回调java类:
void checkLogin(String username, String password,AsyncCallback<Boolean> callback);
因为有了@RemoteServiceRelativePath,所以需要在web.xml中对该servlet的path进行注册:/mygwt/checkLoginServlet
public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService
这个类本质上是一个servlet,因为它实现了RemoteServiceServlet.在这个类里面可以衔接Spring + Hibernate
还有点,在使用那个回调方法时需要声明引用:
GreetServiceAsync service = GWT.create(GreetService.class);
回调中的两个API:
void onFailure(Throwable caught);
void onSuccess(T result); ----->interface AsyncCallback<T>,这就要求了那个类servlet的API必须要有返回值。
1.下载地址:
http://code.google.com/webtoolkit/download.html
2.GWT Designer + WindowBuilder Pro
http://www.instantiations.com/
3.一本牛书:Eclipse Plug-ins
http://www.qualityeclipse.com/
4.下载Plugin for Eclipse在线安装,最好全选SDK(GWT2.0.4 + AppEngine1.3.8) + GDT plugin模式.如果装SDK的话,会自动
下载两个SDK的插件,它们都是windows版本的SDK:
com.google.appengine.eclipse.sdkbundle.1.3.8_1.3.8.v201010161055
com.google.gwt.eclipse.sdkbundle.2.0.4_2.0.4.v201006301254
一定要安装在J2ee版Eclipse3.5下面,那个普通的Eclipse中缺失了太多的依赖插件了。
Eclipse Galileo Sr2 Packages---Eclipse IDE for Java EE Developers, (190 MB)
http://www.eclipse.org/downloads/packages/release/galileo/sr2
在2010-10-28时,又做了更新,当前的:
Google Plugin for Eclipse 3.5----1.4.0.v201010280047
Google App Engine Java SDK 1.3.8----1.3.8.v201010161055
Google Web Toolkit SDK 2.1.0----2.1.0.v201010280047
对GWT而言,它的作用就是“新建工程/工程属性/编绎/运行配置”这三个作用,不具有其它的任何作用了。
运行配置是com.google.gwt.dev.DevMode模式的时候,需要安装下面的firefox插件。
gwt-dev-plugin.xpi(支持Firefox/IE/Chrome三个版本的)
在运行配置中的Arguments/Classpath这两个选项卡很重要,在工程属性中Entry Point Modules这个很重要。
5.编绎生成的mygwt.nocache.js和*.cache.html可以不用细看,因为GWT其主要目的,就是不需要你关注JS的。
6.gwt-servlet.jar, gwt-user.jar, gwt-dev.jar三者之间的关系。在实际deploy的时候,只需要gwt-servlet.jar就OK了。
7.可以导出成jar包(再改war包,因为它包含了classes目录了)。
8.不需要编绎就可以运行,还可以Debug.
9.有Shell/Dev/Deploy三种运行方式。
10.可以新建5种新的类型的文件:
Module----新创建一个Module,会生成tan.gwt.xml
Entry Point Class----新建一个页面入口,会生成onModuleLoad()方法,且会注册在tan.gwt.xml
HTML Page----新建一个主页面文件,对应于tan.gwt.xml这个模块的。
UiBinder ---组合多个UI元素(多个Button/Text)为一个界面元素。
ClientBundle --- 主要用来访问资源文件(Image)
GWT中实现跳转及不同entrypoint怎么互相访问
http://yaoyanzhu.javaeye.com/blog/434196
1.在Compile的时候,最关键的是MyGWT.gwt.xml这个文件,其中的<module rename-to='wyang'>,是编绎后生成文件的目录。
而这个主页面文件MyGWTwarMyGWT.html是没有办法再生的,必须要手工进行修改,MyGWTwarMyGWT.css也是一样的,需要手工改。
2.在主页面文件MyGWTwarMyGWT.html中,最重要的是这个引入这个JS文件:
<script type="text/javascript" language="javascript" src="mygwt/mygwt.nocache.js"></script>
3.运行的模式:
com.google.gwt.dev.DevMode --->推荐这种方式运行。注意Web Application launch config中的Argument参数
com.google.gwt.dev.GWTShell
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/Wo3y7NEq2BlRYS1a5WYxuQ==/3740802440501467109.jpg)
4.在使用eclipse-jee-galileo-SR2-win32的"Server + Dynamic Web Project"时, Server最多只支持Tomcat6.0.
布署时会把完整的web文件拷贝到这个目录下面:
D:TDDOWNLOADeclipse-jee-galileo-SR2-win32workspace.metadata.pluginsorg.eclipse.wst.server.coretmp0
在server.xml文件中有一个<Host/>结点,<Host/>下面是<Context/>, 这个Context就是真正的Dynamic Web Project.
5.在添加了额外的Web Module以后,需要重新Publish和Restart Server, 这样,新添加的那个External Web Module才能起作用
注意,这个Web Module的内容不会拷贝到.metadata.pluginsorg.eclipse.wst.server.coretmp0这个目录下面的,意味着,任何改
变将会立即生效。
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/9_86UsVZ3n8Z2j5zYvKRFQ==/3740802440501467110.jpg)
6.如果工程名为MyGWT,编绎后会生成6个cache.html文件:
5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html------> firefox将会使用这个文件。
EA70C7B7151DF4DBCA138470D3530ECB.cache.html------> IE将会使用这个文件。
7.上面的6个cache.html文件,分别对应于6个不同的浏览器,属于编绎过程中的参数控制的,至少需要30秒:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/sYJS3tyANFoYuSqPjVOJAQ==/3740802440501467111.jpg)
8.只支持firefox的GWT编绎文件,至少需要下面三个:
MyGWT.html ----》mygwt.nocache.js -----》5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html
如下图:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/i-wqrJ9m-Wg3JlRIWujE8Q==/3740802440501467112.jpg)
9.辅助使用alert()或者是firefox的JS debug的插件,来对mygwt.nocache.js进行剖析:
得出:
M = L + Vb中的L=5AB8EAF1DAFE5B0D49F403D5626DC4E0 Vb=.cache.html M=5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html
另外:
mygwt.onScriptLoad = function()将会被自动执行。
function C()中的c.gwtOnLoad(z, R, t, y);是很重要的一个调用。
10.5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html里面几乎全部都是JS。
真正的ajax原来是完全用JS来强写body部分的(body部分用div + css)
11.直接访问http://localhost:8080/mygwt/mygwt/5AB8EAF1DAFE5B0D49F403D5626DC4E0.cache.html是不能正常显示出结果的。因为没有初始化的页面环境MyGWT.html。
12.firefox是gecko ['gek?u] n. 壁虎系列的浏览器。
可以使用它的Proxy Port方式来启用TCP/IP Monitor的view进行web访问的代理监听:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/Nkv63aYvMpKP-rD-P_SNmg==/3740802440501467113.jpg)
13.Eclipse Java EE IDE for Web Developers.也即:eclipse-jee-galileo-SR2-win32
---在config.ini中:
osgi.framework=file:plugins/org.eclipse.osgi_3.5.2.R35x_v20100126.jar
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/eiX1gFbDtlCze9waTKQl7g==/3740802440501467114.jpg)
14.使用firefox进行JS的调试:
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/K9Fyj_fsmBpIcx1D9ar1CA==/3740802440501467115.jpg)
poster-extension
http://code.google.com/p/poster-extension/
tamperdata
http://tamperdata.mozdev.org/
Firebug----对JS进行debug:
https://addons.mozilla.org/zh-CN/firefox/addon/1843/?src=api
密码同步sync:
https://mozillalabs.com/sync/
15.关于share包下面的类,将要做client和server端双重验证,所以,不要访问JS,不然不支持server端了;不要访问File和DB,不然不支持client端了。参见FieldVerifier的类注释:
This class is in the
shared
package because we use it in both the client code and on the server. On the client, we verify that the name is valid before sending an RPC request so the user doesn't have to wait for a network round trip to get feedback. On the server, we verify that the name is correct to ensure that the input is correct regardless of where the RPC originates.![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/cmJyOMTKWXKs0dAZeG_epw==/3740802440501467116.jpg)
16.关于GWT的配置文件,以及代码入口问题:
MyGWT.gwt.xml---》<entry-point class='org.wyang.client.MyGWT'/>--》interface EntryPoint----》void onModuleLoad();
另外,这个参数是设置compile的时候的引用到的package路径的:
<source path='client'/> ---->org.wyang.client
<source path='shared'/> ---->org.wyang.shared
17.常用的Widget以及主要的API:
Button
--addStyleName("sendButton");
--setEnabled(true);
--setFocus(true);
--addClickHandler(handler);
TextBox
--setFocus(true);
--selectAll();
--addKeyUpHandler(handler);
Label
--setText("");
HTML
--setText(textToServer);
--addStyleName("serverResponseLabelError");
--removeStyleName("serverResponseLabelError");
--setHTML(SERVER_ERROR);
RootPanel
--get("sendButtonContainer").add(sendButton);
DialogBox
--setText
--setAnimationEnabled(true);
--setWidget(dialogVPanel);
--hide();
--center();
VerticalPanel
--setHorizontalAlignment
--add
KeyUpEvent --- KeyUpHandler ---event.getNativeKeyCode() == KeyCodes.KEY_ENTER
ClickEvent --- ClickHandler
18.MyGWT.java中如果含有中文的话,需要save成UTF8编码,这样GWT编绎生成的JS中才可以正常在页面显示中文。
19.使用插件Run Web Application的功能时,Jetty是会对web.xml中的servlet进行检查的。----(Tomcat5.5不会进行检查)
-codeServerPort 9997 -port 8888
![[转载]GWT开端 - 天涯谷客 - 不一样的你我、、、 [转载]GWT开端 - 天涯谷客 - 不一样的你我、、、](http://img.bimg.126.net/photo/FrXg4wjdcNCTqE0RgokdmA==/3740802440501467117.jpg)
20.在进行客户端验证时,要把所用到的类的package添加到MyGWT.gwt.xml中,不然模块加载错误。(还有一个处理办法就是把这些类直接和client放在同一个包下)
21.在点击button后,要进行服务器端验证,必须要进行回调机制,不然不能生成JS代码。
常用的处理方法是:
@RemoteServiceRelativePath("checkLoginServlet")
public interface GreetService extends RemoteService{
boolean checkLogin(String username, String password);
}
因为有了RemoteService所以studio会提示生成回调java类:
void checkLogin(String username, String password,AsyncCallback<Boolean> callback);
因为有了@RemoteServiceRelativePath,所以需要在web.xml中对该servlet的path进行注册:/mygwt/checkLoginServlet
public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService
这个类本质上是一个servlet,因为它实现了RemoteServiceServlet.在这个类里面可以衔接Spring + Hibernate
还有点,在使用那个回调方法时需要声明引用:
GreetServiceAsync service = GWT.create(GreetService.class);
回调中的两个API:
void onFailure(Throwable caught);
void onSuccess(T result); ----->interface AsyncCallback<T>,这就要求了那个类servlet的API必须要有返回值。
- [转载]GWT开端
- 开端...
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 开端
- 杭电 ACM 2096 小明A+B
- 杭电 ACM 2055 An easy problem
- 杭电 ACM 2075 A|B?
- 输入数据控制数据输出小数点后的位数
- 2012年09月1日 开学杂想
- [转载]GWT开端
- [转载]开源软件公司
- extjs4.2 struts2登陆
- linux 下 C 编程和make的方法 ( 六:补充 关于搭窝)
- 开通博客, 学习andengine
- 黑马程序员——java基础之基本数据类型及操作方法
- 微信的沟通情怀
- 7 个效果震憾的 HTML5 应用组件
- linux 下 C 编程和make的方法 (七、补充,模块化项目组织的Makefile设计和自动生成脚本)
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
辣椒小炒肉的做法
农家小炒肉的做法大全
小炒肉 做法
湖南正宗小炒肉的做法
家常小炒肉做法大全
小炒肉怎么炒肉不老
农家小炒肉的家常做法
湖南农家小炒肉的做法
小炒五花肉的做法
正宗湖南小炒肉的做法
农家小炒肉怎么做
小炒肉的做法大全家常
小炒螺丝肉
家常小炒肉的做法
青椒小炒肉
辣子小炒肉
正宗农家小炒肉的做法
辣椒小炒肉
湖南小炒肉的家常做法
小炒肉怎么做好吃
小炒肉的做法大全
湘味小炒肉
正宗农家小炒肉
尖椒小炒肉
怎么小炒肉
农家小炒肉盖饭
如何做小炒肉
如何做农家小炒肉
洋葱小炒肉
土豆小炒肉
怎么做小炒肉
湘式小炒肉
千张小炒肉
小炒肉炸酱
肉炒菜
木耳小炒肉
小炒肉套餐
如何炒小炒肉
萝卜干小炒肉
怎么做农家小炒肉
小炒农家肉