轉自:http://my.oschina.net/huangyong/blog/175363java
目錄[-]mysql
今天想跟你們分享一下我主要的 Java 開發工具,我通常是這樣工做的:用 IDEA 寫代碼,用 Maven 管理 jar 包依賴與項目打包,用 Git 進行代碼版本控制。git
關於這三款工具的安裝與配置的過程,本文不做說明,有不太明白的朋友,能夠給我留言,我會盡力解答。程序員
下面以開發 Smart 應用爲例,描述一下這三款工具的具體使用方法。sql
首先,在你的磁盤裏找個單獨的文件夾來存放 Smart 的全部項目源碼,例如:D:\Project\smart,如下稱爲「工做目錄」。數據庫
而後,分別經過 git clone 命令下載 Smart Framework 與 Smart Sample 的源碼到本地磁盤上。下載地址以下:apache
例如:使用 git clone http://git.oschina.net/huangyong/smart-framework 命令,下載 Smart Framework 項目源碼。api
執行完以上三條 git clone 命令後,你的工做目錄中應該會看到這三個子目錄:smart-framework、smart-sample、smart-plugin-cache。瀏覽器
此時,你能夠在工做目錄裏(也就是在以上三個項目目錄的同級)編寫一個 Maven 項目配置文件(做爲根配置文件),一樣須要命名爲 pom.xml,用它來組織這三個項目。代碼以下:tomcat
<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>
注:按照原文的方式配置pom會出現不少問題,不少版本號沒有寫明。修改以下:
smart-sample下的pom:
<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.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>
---------------------------------------------------------------------------------------
<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">
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>com.smart</groupId>
<artifactId>smart</artifactId>
<version>1.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.smart</groupId>
<artifactId>smart-sample</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<dependencies>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
<scope>runtime</scope>
</dependency>
<!-- Smart -->
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-framework</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-plugin-cache</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-plugin-ws</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-plugin-i18n</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Compile -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- Test -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- War -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
<!-- Tomcat -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
<repositories>
<!-- OSC Public -->
<repository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</repository>
<!-- OSC Thirdparty -->
<repository>
<id>osc_thirdparty</id>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</repository>
</repositories>
</project>
-----------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<groupId>com.smart</groupId>
<artifactId>smart</artifactId>
<version>1.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.smart</groupId>
<artifactId>smart-plugin-cache</artifactId>
<version>1.0</version>
<dependencies>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- Smart -->
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-framework</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
</project>
---------------------------------------------------------------------------------------------------------------------
<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">
<parent>
<groupId>com.smart</groupId>
<artifactId>smart</artifactId>
<version>1.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.smart</groupId>
<artifactId>smart-framework</artifactId>
<version>2.0</version>
<dependencies>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- SLF4J -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- CGLib -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<!-- Apache Commons -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
</project>
打開你的 IDEA,選擇 Open Project,此時會彈出一個對話框:
在地址欄中定位到你的工做目錄(能夠手工編寫路徑或直接粘貼路徑),選擇 pom.xml,隨後 IDEA 將自動建立一個基於 Maven 項目。
注意:在 IDEA 的嚮導界面中必定要選擇是 Open Project,而不要選擇 Create New Project。也可使用 Import Project 導入 Maven 項目,但沒有直接 Open Project 來得痛快。
彈指之間,項目已建立完畢!
先編譯一下吧,能夠在工具欄中點擊這個按鈕:
你也可以使用快捷鍵 Ctrl + F9,顯擺一下你的專業。
隨後,IDEA 將編譯整個項目源碼,通常狀況下是沒有任何消息的,由於沒有消息就是好消息。
此外,你還可以使用 Maven 進行編譯。在 IDEA 中點擊右側的 Maven Projects 選項卡,可看到以下界面:
注意:上圖中 smart (root) 表示 Maven 的根配置,也就是你剛纔手工編寫的那個 pom.xml,由它來管理全部其餘的 Maven 項目。
可雙擊一下 compile 節點,隨後 IDEA 會調用 Maven 進行編譯。這樣你就不須要在 cmd 裏手工輸入 Maven 命令了,固然其餘的命令你也是能夠雙擊運行。
注意:建議使用 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 目錄下。
你只需點一下工具欄中的 Debug 按鈕,便可以 Debug 方式運行 Smart Sample 了。
建議:在開發過程當中儘可能使用 Debug 方式運行,這樣你能夠隨時在 IDEA 中打斷點進行調試。此外,須要說明的是,IDEA 的調試功能很是強大,並且很是好用!
在工具欄中也包括了 Git 的經常使用操做,操做很是方便。
以上圖標分別表示:更新代碼、提交代碼、查看差別、查看歷史、撤銷更改。
此外,你還能夠點擊最下方的 Changes 選項卡,用來查看本地變動(Local)與提交日誌(Log)。
你能夠選擇某個版原本查看具體提交的文件內容,還能夠同時選擇多個版本一塊兒查看,還有不少實用的功能。
IDEA 是一款很是優秀的 Java 集成開發環境,用法很是簡單,上手也很是快。它對主流技術與工具都有相應的插件支持,你能夠自定義插件列表,把對於本身無用的插件禁用掉。
Maven 是一款很是優秀的項目構建工具,有了它以後,你無需在每一個項目中管理一大堆的 jar 包了,此外,它還很是有助於對項目進行打包(打 jar/war 包),固然它的功能毫不僅僅如此。
Git 是一款很是優秀的代碼版本控制系統,它能夠有效地實現多人異地辦公,此外,你能夠提交代碼到本地倉庫中,而後一次性提交到遠程倉庫。
以上三款工具的結合,會大大提升 Java 程序員的戰鬥能力!在此,強烈推薦你們使用!