使用 IDEA + Maven + Git 快速开发 JAVA或者Web 应用(转)
0-0 前言
最近和同事做爬虫,其中我主要遇到的问题是:同事在github上放了爬虫demo让我自己去下载,然后自己能搭好环境让整个项目跑起来去抓51job找工作数据。git上克隆一个项目下来,项目是通过maven管理各种插件jar包,我自己摸索搭环境跑起来。
(1)网页内容爬取用python2.7来做,爬取主要用的库有:beautifulsoup4-4.5.1,lxml-3.6.0,stomp.py-4.1.9;均可去官网下载后解压,在解压目录运行steup.py文件即可。
(2)消息队列中间件用apache-activemq-5.9.1,下载后解压运行bin\win64\activemq.bat,开启一个消息队列mq
(3)其中java处理部分用Intellij IDEA IDE,导入后发现各个依赖均没有自动下载。Intellij iDEA IDE怎么导入maven工程,选择file——open——projectName,打开项目,发现各种依赖包都没有,需要我一个一个的去找再下载,然后放在本地自己安装的maven项目里面,依赖的包太多,根本找不过来,只能重新想办法。
用到的技巧是:导入一个maven项目到 IntellijIDAE2016.2,关键的一点是选择open——》pom.xml,会自动下载和导入依赖包文件,而不用手动去一个一个的找。超级方便。如果选项目名称导入的话需要配置pom.xml

0. 引言
今天想跟大家分享一下我主要的 Java 开发工具,我一般是这样工作的:用 IDEA 写代码,用 Maven 管理 jar 包依赖与项目打包,用 Git 进行代码版本控制。
关于这三款工具的安装与配置的过程,本文不作说明,有不太明白的朋友,可以给我留言,我会尽力解答。
下面以开发 Smart 应用为例,描述一下这三款工具的具体使用方法。
1. 使用 Git 下载源码
首先,在你的磁盘里找个单独的文件夹来存放 Smart 的所有项目源码,例如:D:\Project\smart,以下称为“工作目录”。
然后,分别通过 git clone 命令下载 Smart Framework 与 Smart Sample 的源码到本地磁盘上。下载地址如下:
- Smart Framwork:http://git.oschina.net/huangyong/smart-framework
- Smart Sample:http://git.oschina.net/huangyong/smart-sample
- Smart Cache:http://git.oschina.net/huangyong/smart-plugin-cache
例如:使用 git clone http://git.oschina.net/huangyong/smart-framework 命令,下载 Smart Framework 项目源码。
执行完以上三条 git clone 命令后,你的工作目录中应该会看到这三个子目录:smart-framework、smart-sample、smart-plugin-cache。
2. 编写 Maven 项目配置文件
此时,你可以在工作目录里(也就是在以上三个项目目录的同级)编写一个 Maven 项目配置文件(作为根配置文件),同样需要命名为 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> <groupId>smart</groupId>
<artifactId>smart</artifactId>
<version>1.0</version>
<packaging>pom</packaging> <modules>
<module>smart-framework</module>
<module>smart-sample</module>
<module>smart-plugin-cache</module>
</modules> </project>
3. 使用 IDEA 直接打开 Maven 项目
打开你的 IDEA,选择 Open Project,此时会弹出一个对话框:

在地址栏中定位到你的工作目录(可以手工编写路径或直接粘贴路径),选择 pom.xml,随后 IDEA 将自动创建一个基于 Maven 项目。
注意:在 IDEA 的向导界面中一定要选择是 Open Project,而不要选择 Create New Project。也可以使用 Import Project 导入 Maven 项目,但没有直接 Open Project 来得痛快。

弹指之间,项目已创建完毕!
4. 编译源码
先编译一下吧,可以在工具栏中点击这个按钮:

你也可使用快捷键 Ctrl + F9,显摆一下你的专业。
随后,IDEA 将编译整个项目源码,一般情况下是没有任何消息的,因为没有消息就是好消息。
此外,你还可使用 Maven 进行编译。在 IDEA 中点击右侧的 Maven Projects 选项卡,可看到如下界面:

注意:上图中 smart (root) 表示 Maven 的根配置,也就是你刚才手工编写的那个 pom.xml,由它来管理所有其他的 Maven 项目。
可双击一下 compile 节点,随后 IDEA 会调用 Maven 进行编译。这样你就不需要在 cmd 里手工输入 Maven 命令了,当然其他的命令你也是可以双击运行。
5. 在 IDEA 中配置 Tomcat
注意:建议使用 Tomcat 7.0+
在 IDEA 中配置 Tomcat,只需进行一下几个步骤:
首先,点击工具栏中的下拉框,然后点击下拉菜单中的 Edit Configurations 菜单项。

点击后将弹出一个对话框,你可点击左上角的“+”按钮,新建一个 Local 的 Tomcat Server。

然后,可对 Tomcat 进行命名,默认是 Unnamed,可修改为 Tomcat。此外,若你不想让 IDEA 自动打开浏览器,去掉 Start browser 复选框即可,我一般都是这么干的。

随后,部署一个项目,需要切换到上图中的 Deployment 选项卡中,进行简单的配置。

操作步骤:点击“+”按钮 -> 点击 Artifacts... -> 选择 smart-sample:war exploded -> 修改 Application context 为“/smart-sample”。
最后,建议你切换回 Server 选项卡,在 On frame deactivation 下拉框下选择 Update resources。

这样做是为了当你切换出 IDEA 后,可自动更新资源(包括:HTML、CSS、JS、JSP 等),如需要自动编译的话,可使用第三个选项。
注意:IDEA 12.1.6(最新版)中有一个 Bug,第二项也进行了自动编译,在之前的版本中是不存在的,不知道下个版本会不会解决这个问题,不过此问题不会影响你使用。
点击 OK 按钮完成 Tomcat 的所有配置,现在可在工具栏中看见 Tomcat 图标了。

提示:在运行之前,你必须手工创建数据库。比如,Smart Sample 的数据库脚本就在 smart-sample 的 doc 目录下。
6. 以 Debug 方式运行应用程序
你只需点一下工具栏中的 Debug 按钮,即可以 Debug 方式运行 Smart Sample 了。

建议:在开发过程中尽量使用 Debug 方式运行,这样你可以随时在 IDEA 中打断点进行调试。此外,需要说明的是,IDEA 的调试功能非常强大,而且非常好用!
7. 在 IDEA 中对 Git 进行提交与更新
在工具栏中也包括了 Git 的常用操作,操作非常方便。

以上图标分别表示:更新代码、提交代码、查看差异、查看历史、撤销更改。
此外,你还可以点击最下方的 Changes 选项卡,用来查看本地变更(Local)与提交日志(Log)。

你可以选择某个版本来查看具体提交的文件内容,还可以同时选择多个版本一起查看,还有很多实用的功能。
8. 总结
IDEA 是一款非常优秀的 Java 集成开发环境,用法非常简单,上手也非常快。它对主流技术与工具都有相应的插件支持,你可以自定义插件列表,把对于自己无用的插件禁用掉。
Maven 是一款非常优秀的项目构建工具,有了它之后,你无需在每个项目中管理一大堆的 jar 包了,此外,它还非常有助于对项目进行打包(打 jar/war 包),当然它的功能绝不仅仅如此。
Git 是一款非常优秀的代码版本控制系统,它可以有效地实现多人异地办公,此外,你可以提交代码到本地仓库中,然后一次性提交到远程仓库。
以上三款工具的结合,会大大提高 Java 程序员的战斗能力!在此,强烈推荐大家使用!
使用 IDEA + Maven + Git 快速开发 JAVA或者Web 应用(转)的更多相关文章
- 用 NetBeans 快速开发 Java JAX-RS RESTful 服务
有很多IDE可以开发Java RESTful服务,Eclipse.NetBeans等,个人偏好使用NetBeans,本文介绍使用NetBeans开发的入门步骤. <理解RESTful架构> ...
- Salesforce中通过SOAP API和Metadata API开发java的web server服务
1.下载Salesforce平台中WSDL文件 在Salesforce中创建了自己需要用到的对象后,我们想要在别的应用中读写纪录到对象中,首先需要的是自己Salesforce平台的权限通过.登陆自己的 ...
- Wechat4j之Hello world——使用wechat4j快速开发java版微信公众号
Wechat4j是一个开源的java微信开发框架,是目前最简单易用的java微信开发框架. 项目地址:https://github.com/sword-org/wechat4j Wechat4j.ja ...
- springboot快速开发(简单web)
这是一个springboot基础配置文件介绍的demo.只涉及到 控制层与前端的简单交互,用于验证代码的畅通. spring-boot pom.xml解释 <?xml version=&quo ...
- AAuto 快速开发win32小程序
AAuto编程语言 AAuto是专用于桌面软件快速开发的新一代混合型编程语言 - 具有动态语言轻便.灵活.快速开发的特性,而且又可以同时支持静态类型开发,象静态语言那样使用.AAuto可以直接支持原 ...
- Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用
前面几篇介绍了Web API的基础信息,以及如何基于混合框架的方式在WInform界面里面整合了Web API的接入方式,虽然我们看似调用过程比较复杂,但是基于整个框架的支持和考虑,我们提供了代码生成 ...
- 如何有效快速提高Java服务端开发人员的技术水平?
我相信很多工作了3-5年的开发人员都会经常问自己几个问题: 1.为什么总是感觉技术没有质的提高? 2.如何能够有效和快速的提高自身的技术水平? 3.如何进入到一个牛逼的大公司,认识牛逼的人? 这篇文章 ...
- JEECG 3.7.1 版本发布,企业级JAVA快速开发平台
JEECG 3.7.1 版本发布,企业级JAVA快速开发平台 ---------------------------------------- Version: Jeecg_3.7.1项 目: ...
- Java快速开发平台,JEECG 3.7.6性能增强版本发布
JEECG 3.7.6 性能增强版本发布 导读 ⊙Vue SPA单页面应用 ⊙Datagrid标签实现不同风格切换,支持BootstrapTable.EasyUI ⊙灵活通用代码生成器工厂 ...
随机推荐
- VMware8.0虚拟机中安装Ubuntu12.04使用NAT设置连接网络
之前一直尝试使用“桥接”的方法,但是一打开虚拟机,本机windows就断网.最后不得不换种方法,还好尝试了很多遍终于使用NAT设置成功的联网了. 说明:本机windows连接的是无线网. 1.检查自己 ...
- PIL中的Image和numpy中的数组array相互转换
1. PIL image转换成array img = np.asarray(image) 需要注意的是,如果出现read-only错误,并不是转换的错误,一般是你读取的图片的时候,默认选择的是&quo ...
- 关于Cookies与Session系列一
这两个东西,最近项目操作的比较少,不过这两个在Web项目开发中一直都扮演着很重要的角色,有时有些细节会不小心就遗忘掉. Cookies 的概述 Cookies是由服务器端生成,发送给客户端,用来保存 ...
- web.config 修改数据库连接
<connectionstrings> </database=数据库名字 ;uid = 登录数据库的名字;Password = 登录数据库的密码;/> </connect ...
- python解析robot framework的output.xml,并生成html
一.背景 Jenkins自动构建RF脚本,生成的RF特有HTML报告不能正常打开. 需求:用Python解析测试报告的xml数据,放在普通HTML文件中打开 二.output.xml数据 三.用pyh ...
- js面向对象的封装方法,【案例】
封装方法: /** * @矩形canvas库 * @authors Shimily (275766400@qq.com) * @date 2016-12-28 10:30:51 * @version ...
- The different of mouseover and mouseenter
l论事件onmouseover 和 onmouseenter:同类比较onmouseout 和 onmouseleave; 使用onmouseover时,鼠标除了被设置事件的元素,还会触发其子元素: ...
- LeetCode 201 Bitwise AND of Numbers Range 位运算 难度:0
https://leetcode.com/problems/bitwise-and-of-numbers-range/ [n,m]区间的合取总值就是n,m对齐后前面一段相同的数位的值 比如 5:101 ...
- code of C/C++(3) - 从 《Accelerated C++》源码学习句柄类
0 C++中多态的概念 多态是指通过基类的指针或者引用,利用虚函数机制,在运行时确定对象的类型,并且确定程序的编程策略,这是OOP思想的核心之一.多态使得一个对象具有多个对象的属性.class Co ...
- [翻译]PYTHON中如何使用*ARGS和**KWARGS
[翻译]Python中如何使用*args和**kwargs 函数定义 函数调用 不知道有没有人翻译了,看到了,很短,顺手一翻 原文地址 入口 或者可以叫做,在Python中如何使用可变长参数列表 函数 ...
