Maven 基礎(chǔ)(一) | 使用 Maven 的正確姿勢

一、什么是 Maven黍檩?

Maven 是一個(gè)項(xiàng)目管理工具颂碧,它的本質(zhì)是一個(gè)項(xiàng)目對象模型(POM),體現(xiàn)在配置中就是我們常見的 pom.xml 文件沫换,而這個(gè) pom 文件就是 Maven 的核心臭蚁,它管理了整個(gè)項(xiàng)目的生命周期。它主要做兩件事:

  • 項(xiàng)目構(gòu)建:對項(xiàng)目進(jìn)行編譯讯赏、打包垮兑、測試、部署以及上傳到私服倉庫等

  • 依賴管理:Maven 誕生時(shí)就提出了一個(gè)倉庫的概念漱挎,項(xiàng)目中用到的第三方 jar 包系枪,我們在 pom.xml 中配置好依賴即可,Maven 會(huì)自動(dòng)到它的官方中央倉庫下載這個(gè) jar 包到我們的本地倉庫磕谅。

  • 中央倉庫地址:https://mvnrepository.com/

二私爷、為什么要使用 Maven?

  • 方便依賴管理:Java 發(fā)展至今膊夹,生態(tài)非常完善衬浑。我們在項(xiàng)目中用到什么功能,網(wǎng)上一搜肯定有對應(yīng)的 jar 包放刨,各種功能就導(dǎo)致了各種 jar 包的引入嚎卫,這些 jar 包之間可能會(huì)有依賴,可能會(huì)有版本沖突。而 Maven 的誕生解決了這些問題拓诸。

  • 構(gòu)建多模塊項(xiàng)目:現(xiàn)在很多項(xiàng)目都是分了多個(gè)模塊,便于開發(fā)麻昼、也便于擴(kuò)展奠支。多模塊就意味著模塊之間會(huì)有各種依賴,我們運(yùn)行某個(gè)模塊抚芦,可能這個(gè)模塊依賴了別的模塊倍谜。而 Maven 的一鍵構(gòu)建項(xiàng)目幫我們解決了這個(gè)問題。

  • 方便移植:以前沒 maven 的時(shí)代叉抡,團(tuán)隊(duì)協(xié)作要上傳尔崔、下載一大堆 jar 包導(dǎo)入項(xiàng)目,耗時(shí)褥民、費(fèi)力季春。而有了 maven ,我們只需要同步一下 pom 文件即可同步 jar 包消返。這是 maven 解決的第三個(gè)問題载弄。

三、怎么使用 Maven撵颊?

3.1 Maven 的安裝

這個(gè)就不講了宇攻,網(wǎng)上很多資料。比如:https://www.cnblogs.com/KyleXu/p/9972042.html

3.2 Maven 的配置

Maven 的配置比較簡單倡勇,主要是修改 conf 文件夾下的 setting 文件逞刷。配置以下三個(gè)倉庫:

本地倉庫

項(xiàng)目依賴的 jar 包是需要下載到本地才能用的。本地倉庫就是從 maven 私服或者遠(yuǎn)程倉庫下載的 jar 的存儲地址妻熊,默認(rèn)是 當(dāng)前用戶名\.m2\repository 夸浅,我建議改個(gè)好記的地方,后面方便檢查包有沒下載到本地固耘。打開 setting.xml 搜索 localRepository 修改成自定義的地址题篷。

<localRepository>D:\Repository</localRepository>

配置的位置,如下圖:

本地倉庫

私服倉庫

這個(gè)倉庫的話厅目,一般就是公司內(nèi)部使用的啦番枚。用來存儲公司內(nèi)部自己的 jar 包。打開 setting.xml 文件搜索 mirrors 损敷,配置公司的鏡像地址即可葫笼。

<mirror>
    <id>nexus-repos</id>
    <mirrorOf>*</mirrorOf>
    <name>Team Nexus Repository</name>
    <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
</mirror>

遠(yuǎn)程倉庫

遠(yuǎn)程倉庫就是一個(gè) maven 官方維護(hù)的,包含大量 jar 包的倉庫拗馒。這個(gè)庫默認(rèn)是 maven 官方的路星,但是下載非常慢。所以業(yè)界典范阿里巴巴也推出了一個(gè)國內(nèi)的鏡像,我們一般把遠(yuǎn)程倉庫配成阿里的鏡像地址洋丐,就可以快速地下載 jar包啦呈昔。和私服倉庫一樣,遠(yuǎn)程倉庫也是配置在 <mirrors> 標(biāo)簽內(nèi)友绝。

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>

配置的位置堤尾,如下圖:

遠(yuǎn)程倉庫

有人可能問了,配置那么多個(gè)倉庫迁客。究竟 jar 從哪個(gè)下載的呀郭宝?都把我搞糊涂了,別急掷漱,我花了個(gè)流程圖粘室,它的查找順序是這樣的:本地不需要網(wǎng)絡(luò),優(yōu)先從本地找卜范;找不到衔统,再去速度較高的內(nèi)網(wǎng)私服找;然后才是速度稍低的外網(wǎng)遠(yuǎn)程倉庫找先朦。

maven 查找文件流程

3.3 Maven 的命令

常用命令

命令 含義 備注
mvn clean 清除 打包前缰冤,清空上一次的包
mvn compile 編譯 將 java 代碼編譯成 class 文件
mvn test 測試 運(yùn)行單元測試
mvn install 安裝到本地 安裝到本地倉庫,一般是 jar 包
mvn package 打包 一般會(huì)在 target 目錄下生成包喳魏,jar 或 war
mvn deploy 上傳 上傳到私服棉浸,需在 setting.xml 文件配置私服倉庫以及賬號密碼

以上就是 maven 常用的命令,要注意的是:很少情況下我們只運(yùn)行其中一個(gè)命令刺彩,都是組合運(yùn)行的迷郑。比如打包到本地,打包前得清空原有的包吧创倔?那組合起來就是 mvn clean + mvn install

當(dāng)然嗡害,在 IDEA 中開發(fā) maven 項(xiàng)目,我們并不需要手打畦攘。只需點(diǎn)擊對應(yīng)命令即可(也可以按住 ctrl 選中多個(gè)命令一起運(yùn)行)

maven 操作

總而言之霸妹,根據(jù)自己的需求來選擇打包命令馅巷。還有其他的命令請見:

創(chuàng)建 maven 項(xiàng)目

現(xiàn)在一般都是配合 idea 新建 maven 項(xiàng)目了赊舶,這個(gè)命令用得很少,但我們還是得知道一下:生成 maven 項(xiàng)目的原理是秸侣,依賴一個(gè)插件 maven-archetype-plugin台盯,然后這個(gè)插件自帶一些 archetype 模版罢绽,也可以說成項(xiàng)目的骨架。其中:-DgroupId-DartifactId填寫自己想好的項(xiàng)目坐標(biāo)静盅,一般 -DgroupId是公司名的翻轉(zhuǎn)良价,比如 com.google-DartifactId 就是項(xiàng)目的名稱了。最重要的是-DarchetypeArtifactId,他指定了創(chuàng)建的骨架明垢。

mvn archetype:generate -DgroupId=com.nasus -DartifactId=maven-test -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
創(chuàng)建 maven 項(xiàng)目成功

點(diǎn)進(jìn)去蚣常,只有 src文件夾和 pom.xml文件:src 是最重要的目錄,代碼和測試用例以及資源都是放在這里的袖外,對于 maven 項(xiàng)目而言史隆,pom.xml 也是必不可少的。

項(xiàng)目結(jié)構(gòu)

idea 打開的項(xiàng)目結(jié)構(gòu)是這樣的:

idea 打開

pom.xml 的內(nèi)容:

<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/maven-v4_0_0.xsd">

    <!--聲明項(xiàng)目描述符遵循哪一個(gè) POM 模型版本曼验,上面的 xsd 規(guī)范定義了這個(gè)版本,默認(rèn)就行粘姜,不需要修改鬓照,不可刪除-->
    <modelVersion>4.0.0</modelVersion>

    <!--團(tuán)體唯一標(biāo)識符-->
    <groupId>com.nasus</groupId>

    <!--項(xiàng)目唯一標(biāo)識符定位這個(gè)包-->
    <artifactId>maven-test</artifactId>

    <!--打包類型-->
    <packaging>jar</packaging>

    <!--打包版本-->
    <version>1.0-SNAPSHOT</version>

    <!--包名-->
    <name>maven-test</name>

    <!--不用管,刪掉也行-->
    <url>http://maven.apache.org</url>

    <!--項(xiàng)目需要依賴的 jar 包-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

由于篇幅原因孤紧,這里就不詳細(xì)講具體的 pom.xml 標(biāo)簽了豺裆,詳細(xì)介紹請看:

項(xiàng)目打包到本地倉庫

由于項(xiàng)目是 java 項(xiàng)目,在打包前号显,我們要在 pom.xml 中配置項(xiàng)目的 JDK 版本以及 maven 插件版本臭猜,在 <dependencies> 標(biāo)簽前加入項(xiàng)目屬性配置,完整配置如下:

    <!--項(xiàng)目屬性押蚤,在 <dependencies> 前加-->
    <properties>
        <!-- JDK編譯版本 -->
        <java.version>1.8</java.version>
        <!-- 項(xiàng)目編碼 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- JDK編譯版本 -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
    <!--項(xiàng)目需要依賴的 jar 包-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

選擇命令蔑歌,這里我選了 clean、compile揽碘、package

選擇命令

點(diǎn)擊綠色執(zhí)行按鈕次屠,在 target 目錄下生成 maven-test-1.0.SNAPSHOT.jar:

打包結(jié)果

跳過單元測試

在開發(fā)中,我們經(jīng)常需要本地測試雳刺,而這時(shí)我們是不需要跑單元測試的劫灶。所以,我們可以跳過單元測試:選中 test掖桦,點(diǎn)擊紅框按鈕即可本昏。

跳過單元測試

手動(dòng)打 jar 包到本地倉庫

手動(dòng)打 jar 包的應(yīng)用場景是:開發(fā)公司舊項(xiàng)目,當(dāng)找不到依賴的 jar 源碼枪汪,依賴的 jar 又沒有上傳到倉庫涌穆,只有在同事電腦的本地倉庫有一個(gè) jar 包時(shí),我們可以直接運(yùn)行這條命令把 jar 包打到我們電腦本地倉庫料饥,愉快的使用起來蒲犬。

mvn install:install-file -Dfile=jar包的路徑 -DgroupId=gruopId中的內(nèi)容 -DartifactId=actifactId的內(nèi)容 -Dversion=version的內(nèi)容 -Dpackaging=jar

四、maven 依賴管理

maven 通過 pom.xml 來進(jìn)行依賴管理岸啡,我們用它來描述項(xiàng)目的依賴屬性原叮。可以把它看作是 maven 項(xiàng)目的地圖,它描述了 jar 包的坐標(biāo)奋隶、版本以及依賴關(guān)系等擂送。如果不確定你想要引入 jar 的坐標(biāo)怎么寫,可以上 maven 中央倉庫查詢:

4.1 maven 坐標(biāo)

maven 的第三方依賴都在 <dependencies>標(biāo)簽內(nèi)定義唯欣,該標(biāo)簽下的 <dependency> 包裹的內(nèi)容就是一個(gè) jar 的坐標(biāo)嘹吨,如下 pom 就引入了 junitcglib 兩個(gè) jar 。下面就說一下每個(gè)坐標(biāo)的標(biāo)簽都代表什么境氢。

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>cglib</groupId>
      <artifactId>cglib</artifactId>
      <version>3.3.0</version>
    </dependency>
</dependencies>
  • dependencies

在 dependencies 標(biāo)簽中蟀拷,添加項(xiàng)目需要的 jar 所對應(yīng)的 maven 坐標(biāo)。

  • dependency

一個(gè) dependency 標(biāo)簽表示一個(gè)坐標(biāo)萍聊,也就是一個(gè) jar问芬,在 pom 中引入一個(gè) jar 可以這樣寫:

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
</dependency>
  • groupId

公司、團(tuán)體寿桨、個(gè)人開發(fā)者的唯一標(biāo)識符此衅,maven 約束它以創(chuàng)建這個(gè)項(xiàng)目的組織名稱的逆向域名開頭,比如開發(fā)者的域名是 nasus.com 那他的唯一標(biāo)識符就是 com.nasus亭螟。

<!--團(tuán)體唯一標(biāo)識符-->
<groupId>com.nasus</groupId>
  • artifactId

項(xiàng)目唯一標(biāo)識符挡鞍,一個(gè)組織可能有多個(gè)項(xiàng)目,為了方便 maven 引入预烙,maven 約定以項(xiàng)目名稱命名該標(biāo)識符墨微,比如我開發(fā)的 maven-test 項(xiàng)目。

<!--項(xiàng)目唯一標(biāo)識符-->
<artifactId>maven-test</artifactId>
  • version

項(xiàng)目的版本默伍。一個(gè)項(xiàng)目欢嘿,可能會(huì)有多個(gè)版本。如果是正在開發(fā)的項(xiàng)目也糊,我們可以給版本號加上一個(gè) SNAPSHOT炼蹦,表示這是一個(gè)快照版本。

什么是快照狸剃?

對于版本掐隐,如果 maven 以前下載過指定的版本文件,比如說 maven-test:1.0钞馁,maven 將不會(huì)再從倉庫下載新的可用的 1.0 文件虑省。若要下載更新的代碼,maven-test 的版本需要升到 1.1僧凰。

快照是一種特殊的版本探颈,指定了某個(gè)當(dāng)前的開發(fā)進(jìn)度的副本。不同于常規(guī)的版本训措,maven 每次構(gòu)建都會(huì)在遠(yuǎn)程倉庫中檢查新的快照伪节。我們自己的模塊依賴了同事開發(fā)的模塊光羞,正常來說,同事會(huì)每次發(fā)布更新代碼的快照到倉庫中怀大。

新建項(xiàng)目的默認(rèn)版本號就是快照版纱兑,比如上面用 maven 命令新建的 maven-test 項(xiàng)目:

SNAPSHOT

4.2 依賴范圍

  • scope

maven 項(xiàng)目不同的階段引入到 classpath 中的依賴是不同的,例如化借,編譯時(shí)潜慎,maven 會(huì)將與編譯相關(guān)的依賴引入 classpath 中,測試時(shí)蓖康,maven 會(huì)將測試相關(guān)的的依賴引入到 classpath 中铐炫,運(yùn)行時(shí),maven 會(huì)將與運(yùn)行相關(guān)的依賴引入 classpath 中蒜焊,而依賴范圍就是用來控制依賴于這三種 classpath 的關(guān)系驳遵。 如下圖所示:

依賴傳遞,圖:菜鳥教程

scope 表示依賴的范圍山涡,它有 compile(編譯階段)、test(測試階段)唆迁、provided(供應(yīng)階段)鸭丛、runtime(運(yùn)行階段)、system(系統(tǒng)階段)唐责、import(導(dǎo)入階段) 六個(gè)可選值鳞溉。其中 compile 是默認(rèn)的。systemimport 用得少鼠哥,不詳細(xì)講熟菲。

不同依賴的適用范圍不一樣,舉幾個(gè)最典型的栗子:

范圍 編譯有效 測試有效 運(yùn)行時(shí)有效 打包有效 示例
compile spring-core
test junit
provided javax.servlet-api
runtime JDBC驅(qū)動(dòng)
  • compile: 編譯依賴范圍朴恳。如果沒有指定抄罕,就會(huì)默認(rèn)使用該依賴范圍。使用此依賴范圍的 Maven 依賴于颖,對于編譯呆贿、供應(yīng)、測試森渐、運(yùn)行四種 classpath 都有效做入。比如 spring-core

  • provided: 已提供依賴范圍。使用此依賴范圍的 Maven 依賴同衣,對于 編譯和測試 classpath 有效竟块,但在運(yùn)行時(shí)無效。典型的例子是 servlet-api 編譯和測試項(xiàng)目的時(shí)候需要該依賴耐齐,但在運(yùn)行項(xiàng)目的時(shí)候浪秘,由于容器已經(jīng)提供蒋情,就不需要 maven 重復(fù)地引入一遍:

<dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>3.1.0</version>
     <scope>provided</scope>
</dependency>
  • test: 單元測試依賴范圍,只在測試的時(shí)候生效秫逝,所以可以設(shè)置它的 scope 為 test恕出,這樣,當(dāng)項(xiàng)目打包發(fā)布時(shí)违帆,單元測試的依賴就不會(huì)跟著發(fā)布浙巫。比如:
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
</dependency>
  • runtime: 運(yùn)行時(shí)依賴范圍。對于測試和運(yùn)行 classpath 有效刷后,但在編譯主代碼時(shí)無效的畴。典型的例子是 JDBC 驅(qū)動(dòng)實(shí)現(xiàn),項(xiàng)目主代碼的編譯只需要 JDK 提供的 JDBC 接口尝胆,只有在執(zhí)行測試或者運(yùn)行項(xiàng)目的時(shí)候才需要實(shí)現(xiàn)上述接口的具體 JDBC 驅(qū)動(dòng)丧裁。所以,我們使用 JDBD 驅(qū)動(dòng)時(shí)含衔,可以定義成以下樣例:
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
    <scope>runtime</csope>
</dependency>

4.3 排除依賴

如下 xml煎娇,原來的定義中已引入 commons-net 依賴,而 hermes-ftp 中又依賴了 commons-net贪染,為避免版本沖突缓呛,我們可以排除 hermes-ftp 中的 commons-net 依賴。

<dependency>
      <groupId>commons-net</groupId>
      <artifactId>commons-net</artifactId>
      <version>3.6</version>
</dependency>
<dependency>
    <groupId>com.nasus.greece.jupiter</groupId>
    <artifactId>hermes-ftp</artifactId>
    <version>1.1.0-SNAPSHOT</version>
    <!--排除 commons-net 依賴-->
    <exclusions>
        <exclusion>
            <artifactId>commons-net</artifactId>
            <groupId>commons-net</groupId>
        </exclusion>
   </exclusions>
</dependency>

4.4 依賴傳遞

假設(shè)有如下項(xiàng)目關(guān)系:WebMavenDemo 項(xiàng)目依賴 JavaMavenService1杭隙,JavaMavenService1 項(xiàng)目依賴 JavaMavenService2哟绊。

項(xiàng)目關(guān)系

pom.xml 文件配置好依賴關(guān)系后,必須首先 mvn install 后痰憎,依賴的 jar 包才能使用票髓。比如:

  • WebMavenDemopom.xml 文件想能編譯通過,JavaMavenService1 必須 mvn install
  • JavaMavenServicepom.xml 文件想能編譯通過铣耘,JavaMavenService2 必須 mvn install

傳遞性:

傳遞性

假設(shè)我們現(xiàn)在 JavaMavenService2 增加 spring-core 洽沟,那就會(huì)發(fā)現(xiàn)WebMavenDemoJavaMavenService1 也會(huì)自動(dòng)的增加了這個(gè)jar包,這就是依賴的傳遞性涡拘。

注意:非 compile 范圍的依賴是不能傳遞的玲躯。

  • 來源:cnblogs.com/hzg110/p/6936101.html

4.5 統(tǒng)一管理依賴版本

在上面介紹 pom 文件時(shí),我們講過 properties 標(biāo)簽鳄乏,它還有一個(gè)作用就是限定依賴的 jar 包版本跷车,它常用在父項(xiàng)目中指定版本號,那么子項(xiàng)目用到該包就避免了版本不一致造成的依賴沖突橱野,它的寫法是這樣的:

統(tǒng)一管理版本

五朽缴、build 配置

maven 打 war 包時(shí),可能需要一些額外的配置水援,請參看以下 xml 文件:

<build>
  <!-- 項(xiàng)目的名字 -->
  <finalName>maven-test</finalName>
  <!-- 描述項(xiàng)目中資源的位置 -->
  <resources>
    <!-- 自定義資源1 -->
    <resource>
      <!-- 資源目錄 -->
      <directory>src/main/java</directory>
      <!-- 包括哪些文件參與打包 -->
      <includes>
        <include>**/*.xml</include>
      </includes>
      <!-- 排除哪些文件不參與打包 -->
      <excludes>
        <exclude>**/*.txt</exclude>
          <exclude>**/*.doc</exclude>
      </excludes>
    </resource>
  </resources>
  <!-- 設(shè)置構(gòu)建時(shí)候的插件 -->
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.1</version>
      <configuration>
        <!-- 源代碼編譯版本 -->
        <source>1.8</source>
        <!-- 目標(biāo)平臺編譯版本 -->
        <target>1.8</target>
      </configuration>
    </plugin>
    <!-- 資源插件(資源的插件) -->  
    <plugin>  
      <groupId>org.apache.maven.plugins</groupId>  
      <artifactId>maven-resources-plugin</artifactId>  
      <version>2.1</version>  
      <executions>  
        <execution>  
          <phase>compile</phase>  
        </execution>  
      </executions>  
      <configuration>  
        <encoding>UTF-8</encoding>  
      </configuration> 
    </plugin>
    <!-- war插件(將項(xiàng)目打成war包) -->  
    <plugin>  
      <groupId>org.apache.maven.plugins</groupId>  
      <artifactId>maven-war-plugin</artifactId>  
      <version>2.1</version>  
      <configuration>
        <!-- war包名字 -->  
        <warName>maven-test</warName>
      </configuration>  
    </plugin>  
  </plugins>
</build>

六密强、使用 idea 搭建 maven 聚合工程

這個(gè)網(wǎng)上很多資料茅郎,不講了。留個(gè)鏈接或渤。

最后

如果看到這里系冗,喜歡這篇文章的話,請轉(zhuǎn)發(fā)薪鹦、點(diǎn)贊掌敬。微信搜索「一個(gè)優(yōu)秀的廢人」,歡迎關(guān)注池磁。

回復(fù)「1024」送你一套完整的 java奔害、python、c++地熄、go华临、前端、linux端考、算法雅潭、大數(shù)據(jù)、人工智能却特、小程序以及英語教程寻馏。

回復(fù)「電子書」送你 50+ 本 java 電子書。

編程語言
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末核偿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子顽染,更是在濱河造成了極大的恐慌漾岳,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粉寞,死亡現(xiàn)場離奇詭異尼荆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)唧垦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門捅儒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人振亮,你說我怎么就攤上這事巧还。” “怎么了坊秸?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵麸祷,是天一觀的道長。 經(jīng)常有香客問我褒搔,道長阶牍,這世上最難降的妖魔是什么喷面? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮走孽,結(jié)果婚禮上惧辈,老公的妹妹穿的比我還像新娘。我一直安慰自己磕瓷,他們只是感情好盒齿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著生宛,像睡著了一般县昂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陷舅,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天倒彰,我揣著相機(jī)與錄音,去河邊找鬼莱睁。 笑死待讳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仰剿。 我是一名探鬼主播创淡,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼南吮!你這毒婦竟也來了琳彩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤部凑,失蹤者是張志新(化名)和其女友劉穎露乏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涂邀,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘟仿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了比勉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劳较。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浩聋,靈堂內(nèi)的尸體忽然破棺而出观蜗,到底是詐尸還是另有隱情,我是刑警寧澤衣洁,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布嫂便,位于F島的核電站,受9級特大地震影響闸与,放射性物質(zhì)發(fā)生泄漏毙替。R本人自食惡果不足惜岸售,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厂画。 院中可真熱鬧凸丸,春花似錦、人聲如沸袱院。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忽洛。三九已至腻惠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欲虚,已是汗流浹背集灌。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留复哆,地道東北人欣喧。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像梯找,于是被迫代替她去往敵國和親唆阿。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 定義 Maven 是一個(gè)項(xiàng)目管理工具锈锤,它包含了一個(gè)項(xiàng)目對象模型 (POM:Project Object Mo...
    魔笛使者閱讀 1,195評論 0 0
  • 主要內(nèi)容 Maven 介紹 Maven 的使用 Maven 常用命令 idea 開發(fā) maven 項(xiàng)目 1.1.1...
    AlexDing閱讀 416評論 0 0
  • Maven使用入門 1. Maven概述 Maven是什么驯鳖?Maven項(xiàng)目對象模型(POM),可以通過一小段描述信...
    小小韓_小小紅閱讀 2,526評論 2 28
  • 簡介 概述 Maven 是一個(gè)項(xiàng)目管理和整合工具 Maven 為開發(fā)者提供了一套完整的構(gòu)建生命周期框架 Maven...
    閩越布衣閱讀 4,293評論 6 39
  • 1: maven是什么久免? maven是Apache公司的開源項(xiàng)目臼隔,是一個(gè)服務(wù)于Java項(xiàng)目的自動(dòng)化構(gòu)建工具,用來管...
    覆水無言閱讀 406評論 0 0