一、准备工作
1. 下载maven 和 JDK
(1)配置jdk环境
2. 安装maven
(1) 解压缩apache-maven-3.0.5-bin.zip 到你想安装的位置,如D:Program Files。
(2) 设置Maven系统环境变量
M2_HOME= D:Program Filesapache-maven-3.0.5
(3) 添加Maven bin目录至系统环境变量PATH中
;%M2_HOME%in
(4) 确认Maven的安装
cmd > mvn -version
提示Maven version 3.0.5即安装成功。
二、Eclipse配置插件
1. 选择Help->Install New Software
2. 点击“Add…”按钮
3. Name:m2eclipse
4. Location: http://m2eclipse.sonatype.org/sites/m2e
5. 点击“OK”按钮。
6. 勾选“Maven Integration for Eclipse”复选框
7. 点击“Next”按钮
8. 点击“Next >”按钮
9. 选择“I accept the terms of the license agreements”。
10. 点击“Finish”按钮
11. 点击“Restart Now”按钮
12. 选择“Window”-> “Preferences”
13. 加入本地Maven 3
14. 建立一个新的Maven工程,File ->New ->Other…
15. 选择Maven -> Maven Project
16. 勾选“Create a simple project(skip archetype selection)”
17. 点击“Next >”
18. 键入工程信息
(1) 键入Group Id。
类似一个包名。
(2) 键入Artifact Id。
类似类名。
(3) 版本默认即可。
(4) 要求的包类型。
(5) 键入一个名字。
类似工程名。
(6) 键入一个描述。
(7) 点击“Finish >”
注:若“-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.”
则在Window->Preference->Java->Installed JREs->Edit
在Default VM arguments中设置
-Dmaven.multiModuleProjectDirectory=$M2_HOME
每一个java工程都不免使用第三方的架包,Maven的好处就是可以统一管理这些架包,并使多个java工程共享这些架包。我们所需要做的就是按规则编辑pom.xml文件。Maven已经非常智能,使用maven的eclipse插件的向导,只要输入参数就可以将配置文件生成出来。我们的例子是用jdbc方式访问oracle的数据库。所以需要jdbc和oracle的架包的支持。下面我们就来搭建这两个架包到study工程里来。
有两种方式可以采用:
1、自动向导
第一种是采用向导方式并让向导直接去maven的服务器上下载你需要的架包,这种方式存在一定的风险,一来可能maven的服务器上并没有你需要的东东,二来每次智能的maven总是去寻找那并不存在的东东。抛出一大堆红字提示不说,达不到预期目标才是让人郁闷。不过为了保证文档的完整性,还是给出操作步骤。以junit为例(这个东东倒是没有问题,呵呵)当工程的maven被Enable后,弹出菜单的maven2子菜,选择子菜单的“Add Dependency”菜单项,在Query中输入“junit”,向导会自动列出相关列表供选择。选择你最需要的架包,按“OK” 按钮。
如果你的本地仓库已经存在该架包,则向导只在pom.xml加入依赖项信息,pom.xml文件的内容如下
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://[url]www.w3.org/2001/XMLSchema-instance[/url]" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 [url]http://maven.[/url]"apache.org/maven-v4_0_0.xsd>
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.efn</groupId>
- <artifactId>study</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>Maven Quick Start Archetype</name>
- <url>[url]http://maven.apache.org[/url]</url>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- </dependencies>
- </project>
06-8-4 上午09时21分07秒: Local repository folder "" does not exist
06-8-4 上午09时21分11秒: Reading /study/pom.xml
06-8-4 上午09时21分11秒: Local repository folder "" does not exist
06-8-4 上午09时21分18秒: Reading /study/pom.xml
06-8-4 上午09时21分18秒: Local repository folder "" does not exist
06-8-4 上午09时21分19秒: Reading /study/pom.xml
06-8-4 上午09时21分19秒: Local repository folder "" does not exist
06-8-4 上午09时36分33秒: Local repository folder "" does not exist
06-8-4 上午09时37分11秒: Reading / study /pom.xml
06-8-4 上午09时37分11秒: Local repository folder "" does not exist
06-8-4 上午09时37分15秒: Local repository folder "" does not exist
06-8-4 上午09时40分07秒: Local repository folder "" does not exist
06-8-4 上午09时40分08秒: Reading / study /pom.xml
06-8-4 上午09时40分08秒: Local repository folder "" does not exist
06-8-4 上午09时46分24秒: Reading / study /pom.xml
06-8-4 上午09时46分24秒: Local repository folder "" does not exist
06-8-4 上午09时46分28秒: Local repository folder "" does not exist
06-8-4 上午09时46分40秒: Local repository folder "" does not exist
06-8-4 上午09时46分47秒: Local repository folder "" does not exist
06-8-4 上午09时46分47秒: Reading / study /pom.xml
06-8-4 上午09时46分47秒: Local repository folder "" does not exist
06-8-4 上午09 时46 分49 秒: Downloading [central] -> [url]http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.pom[/url]
06-8-4 上午09 时46 分49 秒: Downloaded [central] -> [url]http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.pom[/url]
06-8-4 上午09 时46 分51 秒: Downloading [central] -> [url]http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar[/url]
06-8-4 上午09时47分00秒: Downloaded [central] -> [url]http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar[/url]
----------------------------------------------------------------
补充修正:如果出现错误提示同时你手头也有架包的话可以采用maven的指令进行本地化安装。比如我在安装hibernate的架包时告诉我jta无法下载。要求本地化安装,给出的提示如下:
1) javax.transaction:jta:jar:1.0.1B
Try downloading the file manually from:[url]http://java.sun.com/products/jta.Then[/url], install it using the command:
mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=/path/to/filePath to dependency:
1) com.efn:mywebapp:war:1.0-SNAPSHOT
2) org.hibernate:hibernate:jar:3.1rc2
3) javax.transaction:jta:jar:1.0.1B
----------
1 required artifact is missing.for artifact: com.efn:mywebapp-1.0-SNAPSHOT.war这个提示是说可以先到sun的网站下载jta架包,然后采用命令行的方式按要求安装,因为我本来就有此架包,于是拷到一个方便的位置,比如c:\,然后在命令行下输入:
mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=C:/jta.jar
执行完毕后,一切OK!
--------------------------------------------------------------
2、手工配置
手工配置比起自动化来说是麻烦了些,不过任何东东掌握在自己手里总归是吃饱喝足谁也不服了不是J。而且配置一次就可以受益终身。更重要的是能解决自动化完成不了的任务。比如我现在要配置oracle的jdbc驱动,采用自动化就提示我下载不了让我改变下载地址等等,真累。
算了还是自己来吧。
手工配置前还是先介绍一下相关背景知识。首先了解一下jar仓库的概念,maven采用集中化的方式管理架包,凡用maven构建的java工程都可以重用统一管理下的架包,所以必须有一个统一存放jar文件的地方,这就是jar仓库,不论是开发还是部署都会建立一个本地仓库。这个仓库的位置默认是X:Documents and SettingsAdministrator.LIPENG.m2 epository(X是你操作系统所在盘符)下,你可以修改配置文件改变默认的输出位置。该配置文件在maven目录下的conf子目录下。文件名叫settings.xml。在配置文件中加入如下节点信息即可D:/Repository。不过不建议改变,好像eclipse的maven插件只认默认的输出位置。我就是在这方面出了问题搞了半天才发现是输出路径的问题,也许是我还
没有玩转插件。谁要是解决此问题别忘了跟大家共享。
现在我们分析一下配置文件pom.xml的结构,以junit为例,格式如下:
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- </dependencies>
Repository
`-- junit
|-- junit
| `-- 3.8.1
| `-- junit-3.8.1.jar
现在大家应该明白了吧,多余的话不说啦。照葫芦画瓢就是。不过注意先建目录后写配置文件,否则一旦保存,智能的插件就马上开始下载了…
现在开始手动建立oracle的jdbc目录并配置文件,首先建立目录结构如下:
Repository
`-- ojdbc
|-- ojdbc
| `-- 14
| `-- ojdbc-14.jar
如果你手头的jar文件名叫ojdbc14.jar,则改为ojdbc-14.jar,写配置文件:
- <dependency>
- <groupId>ojdbc</groupId>
- <artifactId>ojdbc</artifactId>
- <version>14</version>
- </dependency>
- <?xml version="1.0"?>
- <project>
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.mycompany.app</groupId>
- <artifactId>myapp</artifactId>
- <name>Maven Quick Start Archetype</name>
- <version>1.0-SNAPSHOT</version>
- <url>[url]http://maven.apache.org[/url]</url>
- <dependencies>
- <dependency>
- <groupId>ojdbc</groupId>
- <artifactId>ojdbc</artifactId>
- <version>14</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- </dependencies>
- </project>
保存之,则发现工程管理透视图发生了一点变化,依此方法再加上jdbc的架包,现在可以开始写程序了,建一个类并添加main函数,编写程序如下:
- public static void main( String[] args )
- {
- Connection conn = null;
- PreparedStatement ps = null;
- ResultSet rs = null;
- try {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- conn = DriverManager.getConnection("jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.0.240)))(connect_data=(SERVER = DEDICATED)(SERVICE_NAME = db.efriendnet.com)))", "efnx", "efnx");
- ps = conn.prepareStatement("select * From tb_partyinfo");
- rs = ps.executeQuery();
- while(rs.next())
- {
- System.out.println(rs.getString("topic"));
- }
- } catch (Exception e) {
- System.out.print(e.getMessage());
- }
- finally
- {
- if (rs != null) {try {rs.close();} catch (SQLException e) {}}
- if (ps != null) {try {ps.close();} catch (SQLException e) {}}
- if (conn != null) {try {conn.close();} catch (SQLException e) {}}
- }
- }
别忘了import相应的包