欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Maven的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Maven的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù),網(wǎng)站設(shè)計(jì),綿陽(yáng)服務(wù)器托管等一站式綜合服務(wù)型公司,專(zhuān)業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競(jìng)爭(zhēng)對(duì)手中脫穎而出創(chuàng)新互聯(lián)公司。

也許是本人不才,初識(shí)Maven時(shí),被各種不明所以的教程搞得一頭霧水,而在后來(lái)的使用中,我發(fā)現(xiàn)Maven大部分功能沒(méi)有想象的那么困難。

本片文章面向Maven初學(xué)者,希望能讓其以最快的速度了解Maven并享受到它所帶來(lái)的一系列好處。

[一個(gè)簡(jiǎn)單的問(wèn)題]

在進(jìn)行講解前,先提問(wèn)一個(gè)簡(jiǎn)單的問(wèn)題。

假如你正在Eclipse下開(kāi)發(fā)兩個(gè)Java項(xiàng)目,姑且把它們稱(chēng)為A、B,其中A項(xiàng)目中的一些功能依賴(lài)于B項(xiàng)目中的某些類(lèi),那么如何維系這種依賴(lài)關(guān)系的呢?

筆者在使用Maven前是這樣做的,將B項(xiàng)目打包為jar,并在A項(xiàng)目的Library下導(dǎo)入B的jar文件。

這樣做有著很明顯的缺點(diǎn):

1.如果在開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn)B中的bug,則必須重新將B打包并對(duì)A項(xiàng)目進(jìn)行重編譯操作

2.在協(xié)同開(kāi)發(fā)A項(xiàng)目時(shí),為了保證其能夠正常運(yùn)行,要么選擇將B打包入A中,要么選擇將B一樣發(fā)布出去并告知開(kāi)發(fā)者使用方法。顯然這兩個(gè)方法都不太好,前者可能造成資源浪費(fèi)(比如開(kāi)發(fā)者可能正在開(kāi)發(fā)依賴(lài)B的其它項(xiàng)目,B已經(jīng)存儲(chǔ)到本地了),而后者則會(huì)為項(xiàng)目正常運(yùn)行帶來(lái)風(fēng)險(xiǎn)(一旦把工作交給人工注定會(huì)帶來(lái)一定的失敗率)。

因此,這樣手動(dòng)的控制項(xiàng)目間依賴(lài)關(guān)系顯然是一種‘拙劣'的方法。

[Maven介紹]

依據(jù)筆者看來(lái),Maven的核心功能便是合理敘述項(xiàng)目間的依賴(lài)關(guān)系。

所有的Maven項(xiàng)目包含著一個(gè)名為pom.xml的文件,在文件中記錄著自己的<groupId><artifactId><version>等字段,這些字段在創(chuàng)建Maven項(xiàng)目時(shí)填寫(xiě),Maven會(huì)依據(jù)它們來(lái)定位到該項(xiàng)目。

在pom中的另一個(gè)關(guān)鍵標(biāo)簽是<dependencies>,該標(biāo)簽下可以包含若干個(gè)<dependency>標(biāo)簽,而<dependency>下則是上面介紹的<groupId><artifactId><version>等依賴(lài)字段,它們確定著一個(gè)唯一的項(xiàng)目版本。

一個(gè)典型的pom.xml[來(lái)自項(xiàng)目luajava]:

<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>org.keplerproject</groupId> 
  <artifactId>luajava</artifactId> 
  <version>1.1</version> 
  <packaging>jar</packaging> 
 
  <name>luajava</name> 
  <url>http://maven.apache.org</url> 
 
  <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  </properties> 
  <build> 
    <plugins> 
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.0.2</version> 
        <configuration> 
          <source>1.7</source> 
          <target>1.7</target> 
        </configuration> 
      </plugin> 
    </plugins> 
  </build> 
  <dependencies> 
    <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
    </dependency> 
  </dependencies> 
</project>

[Maven庫(kù)]

以剛才的A、B項(xiàng)目為例,在A項(xiàng)目的pom文件中寫(xiě)入<dependency>關(guān)聯(lián)B項(xiàng)目,Maven會(huì)在工作區(qū)中找到B項(xiàng)目,并創(chuàng)建依賴(lài)。此時(shí)A項(xiàng)目可以直接訪問(wèn)到B項(xiàng)目中的類(lèi)資源,而且對(duì)A調(diào)試時(shí)依然會(huì)擊中B項(xiàng)目中設(shè)置的斷點(diǎn)。

除去工作區(qū)的依賴(lài)關(guān)聯(lián)外,Maven也可以關(guān)聯(lián)一個(gè)遠(yuǎn)端鏡像中的項(xiàng)目,在默認(rèn)情況下,如果工作區(qū)中沒(méi)有對(duì)應(yīng)的項(xiàng)目記錄,Maven會(huì)連接到中心倉(cāng)庫(kù)查找,如果找到,它會(huì)把項(xiàng)目下載到本地庫(kù)中(Windows中本地庫(kù)位于用戶(hù)文檔的.m2目錄下),并自動(dòng)設(shè)置關(guān)聯(lián)。這是一個(gè)十分便利的特性,在我們需要額外jar包支持時(shí),不再需要進(jìn)行手動(dòng)的下載和引入,我們僅需要將需要項(xiàng)目對(duì)應(yīng)的依賴(lài)字段粘貼到pom的合適位置,剩下的交給Maven完成即可。

[一個(gè)例子]

那么,我們?nèi)绾沃浪桧?xiàng)目的groupId等字段呢?

一般而言,如果官方項(xiàng)目支持Maven,在其頁(yè)面一般會(huì)有一段依賴(lài)字段以供復(fù)制,但也確實(shí)存在支持Maven但沒(méi)有給出依賴(lài)字段的情況。而另一些項(xiàng)目的Maven特性由第三方維護(hù),此時(shí)從官方渠道獲得對(duì)Maven的支持比較困難。

因此,查詢(xún)依賴(lài)字段選的方案,是使用Maven搜索服務(wù)進(jìn)行搜索。

這里筆者推薦一個(gè)地址:mvnrepository.com

下面以使用Eclipse關(guān)聯(lián)MySqlJDBC驅(qū)動(dòng)為例子,在此之前,請(qǐng)?jiān)贖elp->AboutEclipse中確認(rèn)其支持Maven:

Maven的示例分析

在Eclipse官方新版本中,已經(jīng)內(nèi)置有對(duì)Maven的支持,如果版本比較舊可以去安裝Maven插件。

我們先來(lái)新建一個(gè)Maven項(xiàng)目,New->Project->MavenProject->Createasimpleproject(skiparchetypeselection).

下面是這步比較重要,填寫(xiě)這個(gè)項(xiàng)目的GroupId等依賴(lài)字段,這里填寫(xiě)的字段會(huì)在其它項(xiàng)目對(duì)其依賴(lài)時(shí)用到,未填寫(xiě)的部分都為選填內(nèi)容:

Maven的示例分析

之后,我們?nèi)vnrepository.com搜索"MySql JDBC"

Maven的示例分析

很快,我們找到了結(jié)果,點(diǎn)擊進(jìn)入查看詳細(xì)的版本信息:

Maven的示例分析

這里列出了MySql JDBC的多個(gè)版本及使用情況,這里我們選擇一個(gè)第二新的版本5.1.34:

Maven的示例分析

復(fù)制Maven框中的內(nèi)容,把它們寫(xiě)到pom的<dependencies>下:

<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.test</groupId> 
  <artifactId>maventest</artifactId> 
  <version>0.0.1-SNAPSHOT</version> 
  <dependencies> 
    <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.34</version> 
    </dependency> 
  </dependencies> 
</project>

在Progress讀條結(jié)束后,可以看到項(xiàng)目中多出Maven Dependencies,里面可以找到我們剛剛引入的jdbc驅(qū)動(dòng)包:

Maven的示例分析

[其它特性]

1.鏡像源

很明顯,Maven中心倉(cāng)庫(kù)負(fù)載比較大,而且不在國(guó)內(nèi),因此速度非常慢,有時(shí)甚至?xí)也坏揭蕾?lài)。因此,尤其是在小規(guī)模團(tuán)隊(duì)開(kāi)發(fā)這種場(chǎng)合下,搭建一個(gè)Maven游戲會(huì)極大的提升效率。這里推薦一個(gè)Maven鏡像搭建工具:Nexus:http://www.sonatype.org/nexus/

使用它可以很快速方便的搭建私有Maven鏡像源,之后在Maven的settings.xml里進(jìn)行配置即可。

2.惰性下載src源碼

在一些時(shí)候,我們需要參閱依賴(lài)項(xiàng)目的源文件,此時(shí)可以嘗試直接雙擊class文件,如果Maven鏡像源中存在源文件,會(huì)自動(dòng)下載到本地,eclipse會(huì)自動(dòng)加載并顯示。

3.編譯參數(shù)配置

筆者使用EclipseLuna版,Maven默認(rèn)的Java編譯版本為1.5,我們可以在pom指定其編譯版本,使其提升至1.7(參考luajavapom中的build標(biāo)簽);此外這些設(shè)置也會(huì)被諸如jenkins持續(xù)集成等自動(dòng)化工具讀取并進(jìn)行恰當(dāng)配置。

關(guān)于“Maven的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站名稱(chēng):Maven的示例分析-創(chuàng)新互聯(lián)
鏈接URL:http://aaarwkj.com/article8/iscop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、面包屑導(dǎo)航、定制開(kāi)發(fā)、定制網(wǎng)站外貿(mào)建站、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
亚洲免费麻豆一区二区三区| 成人又黄又爽大片在线观看 | 国产我不卡在线观看免费| 国产亚洲加勒比久久精品| 大陆av剧情网站在线观看| 99久久久精品国产免费| 午夜福利中文在线观看| 精品裸足人妻少妇二区三区| 成人中文字幕日韩电影| 亚洲综合一区二区精品久久| 国产精品福利午夜在线观看| 国产亚洲av看码精品永久| 国产高清毛片区1区二区三区| 加勒比久久精品网址系列| 精品欧美一区二区三久久| 免费av不卡一区二区| 国产在线观看不卡视频| 精品视频美女肉体亚洲| 国产三级在线播放完整| 久久人妻蜜桃一区二区三区| 亚洲精品最新地址久久久| 成人福利午夜一区二区| 日本在线观看成人大片| 亚洲国产中文一区二区久久| 92国产精品午夜福利| 国产黄色看三级91大片| 国产免费成人在线视频| 天天操时时操夜夜操| 色婷婷亚洲婷婷亚洲最大| 国产男生午夜福利网站| 国产精品三级玖玖玖电影| 少妇一区二区三区免费| 亚洲欧美日韩精品区| 亚洲美女国产精选999| 91亚洲精品一区二区三区| 国产中文字幕精品在线| 丁香六月五月色婷婷网| 日韩精品国产一区二区在线观看| 激情五月婷婷久久av| 精品少妇高潮蜜臀av| 人妻熟妇av在线一区二区三区|