zoukankan      html  css  js  c++  java
  • Maven教程

    一、准备工作

    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文件的内容如下
    xml 代码
     
    1. <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>  
    2. <modelVersion>4.0.0</modelVersion>  
    3. <groupId>com.efn</groupId>  
    4. <artifactId>study</artifactId>  
    5. <packaging>jar</packaging>  
    6. <version>1.0-SNAPSHOT</version>  
    7. <name>Maven Quick Start Archetype</name>  
    8. <url>[url]http://maven.apache.org[/url]</url>  
    9. <dependencies>  
    10. <dependency>  
    11. <groupId>junit</groupId>  
    12. <artifactId>junit</artifactId>  
    13. <version>3.8.1</version>  
    14. </dependency>  
    15. </dependencies>  
    16. </project>  
    如果本地仓库没有,则向导会去maven的服务器下载架包,并在控制台输出下载日志如下:
    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为例,格式如下:
    xml 代码
     
    1. <dependencies>  
    2. <dependency>  
    3. <groupId>junit</groupId>  
    4. <artifactId>junit</artifactId>  
    5. <version>3.8.1</version>  
    6. </dependency>  
    7. </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,写配置文件:
    xml 代码
     
    1. <dependency>  
    2. <groupId>ojdbc</groupId>  
    3. <artifactId>ojdbc</artifactId>  
    4. <version>14</version>  
    5. </dependency>  
    那么现在一个完整的pom.xml文件如下:
    xml 代码
     
    1. <?xml version="1.0"?>
    2. <project>  
    3. <modelVersion>4.0.0</modelVersion>  
    4. <groupId>com.mycompany.app</groupId>  
    5. <artifactId>myapp</artifactId>  
    6. <name>Maven Quick Start Archetype</name>  
    7. <version>1.0-SNAPSHOT</version>  
    8. <url>[url]http://maven.apache.org[/url]</url>  
    9. <dependencies>  
    10. <dependency>  
    11. <groupId>ojdbc</groupId>  
    12. <artifactId>ojdbc</artifactId>  
    13. <version>14</version>  
    14. </dependency>  
    15. <dependency>  
    16. <groupId>junit</groupId>  
    17. <artifactId>junit</artifactId>  
    18. <version>3.8.1</version>  
    19. </dependency>  
    20. </dependencies>  
    21. </project>  

    保存之,则发现工程管理透视图发生了一点变化,依此方法再加上jdbc的架包,现在可以开始写程序了,建一个类并添加main函数,编写程序如下:
    java 代码
     
    1. public static void main( String[] args )   
    2. {   
    3. Connection conn = null;   
    4. PreparedStatement ps = null;   
    5. ResultSet rs = null;   
    6. try {   
    7. Class.forName("oracle.jdbc.driver.OracleDriver");   
    8. 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");   
    9. ps = conn.prepareStatement("select * From tb_partyinfo");   
    10. rs = ps.executeQuery();   
    11. while(rs.next())   
    12. {   
    13. System.out.println(rs.getString("topic"));   
    14. }   
    15. catch (Exception e) {   
    16. System.out.print(e.getMessage());   
    17. }   
    18. finally  
    19. {   
    20. if (rs != null) {try {rs.close();} catch (SQLException e) {}}   
    21. if (ps != null) {try {ps.close();} catch (SQLException e) {}}   
    22. if (conn != null) {try {conn.close();} catch (SQLException e) {}}   
    23. }   
    24. }  

    别忘了import相应的包
  • 相关阅读:
    正确使用c语言中的头文件
    用Python玩转大数据-入门阶段
    Python基础知识进阶(五---2)----程序基本结构、简单分支、异常处理、三大实例分析、基本循环结构、通用循环构造方法、死循环嵌套循环、布尔表达式
    Python基础知识进阶(五---1)----程序基本结构、简单分支、异常处理、三大实例分析、基本循环结构、通用循环构造方法、死循环嵌套循环、布尔表达式
    Python小程序练习(7个) 2017年9月28日---告诉自己多东西练习,而不是去空想
    python基础知识进阶(四) Python语言的math库和random库和实例
    python基础知识进阶(二) Python语言的数据类型
    python基础知识进阶之路(一)
    今天2017.5.23 开始一个web端网上商城项目的开发
    Lambda表达式(转载)
  • 原文地址:https://www.cnblogs.com/julyme/p/4666793.html
Copyright © 2011-2022 走看看