github:https://github.com/wade6/messageboard-webx3
创建webx3项目
根据webx3的官方网站,www.openwebx.org,找到“创建一个webx应用”,按照上面说的流程,就可以创建一个webx的项目。
具体流程这里就不说了,官网上已经写得很清楚了。下面主要解释一下可能存在疑惑的地方。
创建项目的命令为:
-----------------------------------------------------------------------------------------------------
mvn archetype:generate \
-DgroupId=com.alibaba.webx \
-DartifactId=tutorial1 \
-Dversion=1.0-SNAPSHOT \
-Dpackage=com.alibaba.webx.tutorial1 \
-DarchetypeArtifactId=archetype-webx-quickstart \
-DarchetypeGroupId=com.alibaba.citrus.sample \
-DarchetypeVersion=1.0 \
-DinteractiveMode=false

|
项目组( |
|
项目名称( |
|
项目版本( |
|
项目中Java类的包名( |
官方网站只是给了参数1-4的解释说明,可是并没有说明下面四个参数的作用,原因是下面参数涉及到maven的相关知识,我也是在网上查了查才知道他们的作用。
![]() ![]() |
模板的项目名称 |
![]() ![]() |
模板的项目组 |
![]() ![]() |
模板的版本号 |
![]() ![]() |
项目生成中不使用交互模式 |
-----------------------------------------------------------------------------------------------------
上面罗列的命令和解释你是否看懂了呢,反正我第一次看的时候不是非常明白。所以将创建命令拿出来,就是为了解释一下maven创建项目的那些事:
-----------------------------------------------------------------------------------------------------
先来熟悉一个名词:archetype,虽然知道翻译过来的意思是“原型”,但是这个“原型”到底是个什么意思,确实困扰了我好长时间;原来这个“原型”就是“模板”的意思,或许有好多人都知道了,显而易见,但是我就没想到他就是模版的意思~~~
知道了archetype的含义后,上面的创建项目的命令也就很清楚了。
确切的说上面的命令不是“创建项目”,叫“复制项目模板,生成新的项目”比较合适,因为命令执行后生成的目录结构和其中的很多初始文件都是已经存在的,它们以模板(也就是archetype)的形式存在的,刚开始接触maven时以为maven会自动生成这种目录结构还能生成我们开发需要的各种文件~感觉真的很神奇,后来才知道它们是从别的地方下载到本地的(看过《maven权威指南》的大牛们肯定知道这个,只有我这种菜鸟不知道了~晕)。转回正题,既然创建出来的文件夹(模板)是已经存在的,那总有个地方要保存这个模板吧,没错,maven里面有个archetype库的概念,就是存放模版的地方~~
archetype库分为3种类型:1. 缺省库, 2. 用户库, 3. 第三方库。缺省库,很容易理解,就是archetype插件自身就包含的各个archetype,如果你没有指定任何库,缺省库就会其作用,在 archetype插件中使用internal对其进行命名。用户库是指最终用户平时自己使用的库,这个库的文件存放于c://~/.m2/repository, 在archetype插件中通过local对其进行命名。第三方库,也就是以上两者之外的所有库,如存放于本地磁盘的一个目录,远程服务上等。如果公司内部有很多archetype,就可以建一个这样的库,存在服务器上,大家可以进行共享。第三方库中,由于repo1.maven.org是官方支持的,所以有一个别名:remote,用于标识官方的库。
可以通过参数-DarchetypeCatalog来指定生成新项目的模板所在的模板库。
现在如果你想创建一个archetype,首先确定库,然后根据archetype:generate提供的提示进行创建即可。以下是常见的几种方式:
- mvn archetype:generate 调用internal库进行创建
- mvn archetype:generate -DarchetypeCatalog=local 调用local库进行创建
- mvn archetype:generate -DarchetypeCatalog=http://www.mvnsearch.org/maven2 调用http://www.mvnsearch.org/maven2/archetype-catalog.xml 提供的库进行创建。
(对于maven2的archetype插件的一些解释可以参见http://hi.baidu.com/payapple/blog/item/e7f8c60ac6dcb49f0b7b8285.html,http://hehaibo.iteye.com/blog/979145。想系统学习可以参考《maven权威指南》)
具体的maven知识后续也会有针对性的学习整理。
-----------------------------------------------------------------------------------------------------
现在对于上面创建命令列的那一坨东西应该十分清楚了~
-----------------------------------------------------------------------------------------------------
mvn archetype:generate 生成一个工程
-DgroupId=com.alibaba.webx 当前应用程序隶属的Group的ID,通常是公司所有应用程序的根目录,例如:com.alibaba
-DartifactId=tutorial1 项目名称,当前应用程序的ID
-Dversion=1.0-SNAPSHOT 项目的版本
-Dpackage=com.alibaba.webx.tutorial1 项目中java类的包名[ 代码生成时使用的根包的名字,如果没有给出,默认使用archetypeGroupId ]
-DarchetypeArtifactId=archetype-webx-quickstart 项目模板的类型 [模板(archetype)ID ]
-DarchetypeGroupId=com.alibaba.citrus.sample 模板(archetype)的Group ID,
-DarchetypeVersion=1.0 模板的版本
-DinteractiveMode=false 不用进行交互的设置(如果不设置这个参数,控制台回答出一个确认信息,如下图,敲回车就可以了)
其中前面4个参数与我们创建的应用相关,后面四个参数指出我们应用复制的模板。
这个命令没有设置模板库,所以maven会自动从Maven仓库中下载我们设置所需的jar,源码和javadoc。
运行成功后,控制台显示的结果为:
如果创建失败,可以看看maven的仓库中是否还有这个模板,链接http://search.maven.org/#search%7Cga%7C1%7Ccom.alibaba.citrus,如果没有,可以尝试选择其他的模板,只要替换-DarchetypeArtifactId、-DarchetypeGroupId、-DarchetypeVersion为仓库中的信息即可。
-----------------------------------------------------------------------------------------------------
命令运行完后,在项目目录上运行:
tutorial1>mvn jetty:run
就可以启动jetty服务器了,其实模板在pom.xml中已经设置了jetty插件,并且设置了访问端口8081,所以直接用maven命令就可以启动jetty。
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <configuration> <contextPath>/</contextPath> <connectors> ...... <plugin>
运行成功的信息如下:
在浏览器中输入http://localhost:8081/或者127.0.0.1:8081,显示的结果跟官网(www.openwebx.org)运行出现的页面一样,至于为什么会出现那个页面,官网已经说的很清楚了。
生成的项目中只是一个简单的例子。
进入应用主页后,通过在页面index.htm的表单上输入名字,点击“提交查询内容”,跳转到页面hello.htm并显示“hello,name!”。
其中涉及的配置都已经事先配好了,至于怎么配置和运行机制我会在后面的留言板系统开发中慢慢的学习。(现在我也不是太明白~)
相关推荐
内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。
嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip
内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。
少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。
嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip
少儿编程scratch项目源代码文件案例素材-驾驶通关.zip
小区开放对周边道路通行能力影响的研究.pdf
内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。
少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip
内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。
基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf
嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip
Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统
C# WPF - LiveCharts Project
少儿编程scratch项目源代码文件案例素材-恐怖叉子 动画.zip
嵌入式八股文面试题库资料知识宝典-嵌⼊式⼯程师⾯试⾼频问题.zip