Maven筆記-創(chuàng)新互聯(lián)

在cmd 中的命令:Maven筆記

編譯項(xiàng)目:mvn compile

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、朔州網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開(kāi)發(fā)、朔州網(wǎng)絡(luò)營(yíng)銷(xiāo)、朔州企業(yè)策劃、朔州品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供朔州建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):028-86922220,官方網(wǎng)址:muchs.cn

把所有的@test文件都編譯一下并生成測(cè)試報(bào)告:mvn test

清除文件以前編譯生成的文件:mvn clean

一般在打包的時(shí)候都要進(jìn)行clean一下

打包:mvn package

手動(dòng)把本地的jar安裝到本地的倉(cāng)庫(kù):mvn install(優(yōu)點(diǎn)可以把service和dao抽取出來(lái)當(dāng)成一個(gè)項(xiàng)目,然后安裝到本地,其他的項(xiàng)目可以直接導(dǎo)入該架包)

打包的時(shí)候忽略test編譯:mvn package -Dmave.test.skip=true

生成maven的骨架:mvn archetype:generate,然后即根據(jù)下面提示的信息進(jìn)行設(shè)置groupid,artifactid,version,package

------------------------------------------------------------------

Maven的scope范圍:

test:在測(cè)試的范圍有效,在編譯和打包的時(shí)候不會(huì)使用這個(gè)依賴(lài)

compile :變異的時(shí)候有效,編譯和打包的時(shí)候會(huì)進(jìn)行依賴(lài)進(jìn)去

Provided:在編譯和測(cè)試的時(shí)候有效,打包為war不會(huì)依賴(lài)進(jìn)去,比如servle-api.jar ,因?yàn)檫@個(gè)包在tomcat中已經(jīng)存在,如果再打包會(huì)有沖突

Runtime:運(yùn)行的時(shí)候依賴(lài),但是在編譯的時(shí)候不會(huì)進(jìn)行依賴(lài)。

默認(rèn)的是compile

-------------------------------------------------

maven 的傳遞性:

b項(xiàng)目和c項(xiàng)目是獨(dú)立的,并且進(jìn)行mvn install生成jar,在a項(xiàng)目中引入b.jar,c.jar,這樣的話(huà)a項(xiàng)目就擁有了b項(xiàng)目和c項(xiàng)目中的包。

maven的層次性質(zhì):

導(dǎo)入:

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>my.maven</groupId>
        <artifactId>user-core</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>my.maven</groupId>
        <artifactId>user-dao</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>my.maven</groupId>
        <artifactId>user-service</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

如果b項(xiàng)目和c項(xiàng)目種分別引入了log4j這個(gè)包,但是版本是不一樣的,這時(shí)候就看在pom文件中誰(shuí)先引入,就是那個(gè)版本的包,而且還有層級(jí)的關(guān)系影響引入。

除此之外導(dǎo)入項(xiàng)目包的時(shí)候,往往導(dǎo)入一個(gè)包就會(huì)傳遞很多的包進(jìn)行,這時(shí)候我們可以相對(duì)性的忽略一些包的導(dǎo)入exclusions進(jìn)行忽略

聚合:

使用一條命令就能操作很多的聚合項(xiàng)目:比如一個(gè)項(xiàng)目由user-service,user-dao,user-web來(lái)組成,其中service-web引入user-service和user-dao這兩個(gè)項(xiàng)目,當(dāng)我們編譯項(xiàng)目的時(shí)候,不用一個(gè)一個(gè)進(jìn)行編譯,我們可以建立一個(gè)簡(jiǎn)單的maven項(xiàng)目(pom類(lèi)型),其中簡(jiǎn)單的maven項(xiàng)目類(lèi)型的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>my.maven</groupId>
  <artifactId>user-combine</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  
  
  <!-- 聚合 -->
  <modules>
      <module>../user-dao</module>
      <module>../user-service</module>
      <module>../user-web</module>
  </modules>
  
  
  
  
</project>

這樣的話(huà)我們就不用單個(gè)去操作當(dāng)子項(xiàng)目了,我們可以操作user-combine這個(gè)項(xiàng)目進(jìn)行編譯,因?yàn)樵趗ser-combine項(xiàng)目中已經(jīng)把上面的三個(gè)子項(xiàng)目聚合在一起了。

 繼承:

父項(xiàng)目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>my.maven</groupId>
  <artifactId>user-combine</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  
  
  
  <url>http://maven.apache.org</url>  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <org.springframework.version>3.1.2.RELEASE</org.springframework.version>
    <junit.version>3.8.1</junit.version>  
  </properties>
  
  
  <!-- 聚合 -->
  <modules>
      <module>../user-core</module>
      <module>../user-dao</module>
      <module>../user-service</module>
      <module>../user-web</module>
  </modules>
  
  <!-- 繼承的架包管理 -->
  <dependencyManagement>
      <dependencies>
          <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>${junit.version}</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        
      </dependencies>
      
  </dependencyManagement>
  
</project>

子項(xiàng)目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>
  <!-- 繼承 -->
  <parent>
      <groupId>my.maven</groupId>
      <artifactId>user-combine</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../user-combine/pom.xml</relativePath>
  </parent>
  
  <!-- <groupId>my.maven</groupId> -->
  <artifactId>user-service</artifactId>
  <!-- <version>0.0.1-SNAPSHOT</version> -->
  <packaging>jar</packaging>

  <name>user-service</name>
  
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
  </dependencies>
</project>

當(dāng)前題目:Maven筆記-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article2/depoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)建站公司、網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作、做網(wǎng)站、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(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)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)