1. 程式人生 > >MAVEN常用命令+基本配置詳解

MAVEN常用命令+基本配置詳解

mvn  -v  類似於 javac -version  或者 git --version

在linux上使用maven也需要像使用java一樣設定環境變數 這是
export M2_HOME     = /?
export PATH = $PATH:$M2_HOME/bin
export MAVEN_OPTS = -Xms256m -Xmx512m


關於myeclipse中的內嵌maven的替換.路徑是  Windows-->Preferences-->Maven-->右邊點選add進行替換



------------------------------------一般常用命令----------------------------------------
mvn  help:system 自動在本使用者下建立   ~/.m2/repository
mvn clean compile     清理編譯
mvn clean test  清理測試
mvn clean package 清理打包
mvn clean install  清理將打包好的jar存入 本地倉庫  注意是本地倉庫
mvn archetype:generate 使用Archetype生成專案骨架
mvn clean deploy  根據pom中的配置資訊將專案釋出到遠端倉庫中
------------------------------------一般常用命令----------------------------------------


---------------------------------maven目錄結構----------------------------------------
src/main/java :正式內容包路徑
src/mian/resources :正式的配置檔案路徑
src/test/java :測試包路徑
src/test/resources :測試的配置檔案路徑
src/main/webapp : war 資源目錄
---------------------------------maven目錄結構----------------------------------------



----------------------------優化依賴命令-----------------------------------------------
mvn dependency:list   顯示所有已經解析的所有依賴
mvn dependency:tree  以目錄樹的形式展現依賴,  最高層為一層依賴 其次二層依賴 三層依賴....
mvn dependency:analyze  第一部分顯示 已經使用但是未顯示依賴的的  第二部分顯示專案未使用的但是依賴的
----------------------------優化依賴命令-----------------------------------------------

構件: jar 外掛 war  所有依賴的jar
構建:編譯 測試 打包 釋出



---------------------------關於 maven的生命週期 和外掛 關係---------------------
生命週期就是介面:表明要幹什麼事情
外掛就是具體的實現:表明怎麼幹這件事情
---------------------------關於 maven的生命週期 和外掛 關係---------------------



聚合,繼承,整合測試,自動化部署,(這幾塊非常重要 自己去瞅瞅吧)

如下是pom.xml檔案的常用配置

<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">
  <modelVersion>4.0.0</modelVersion>  <!-- 固定值在MAVEN3中-->
  <groupId>cuiyaonan2000</groupId>  <!-- 所屬於的組 -->
  <artifactId>maven</artifactId>  <!-- 唯一標示 -->
  <version>0.0.1-SNAPSHOT</version>  <!-- 版本號 -->
  <packaging>war</packaging>   <!-- 專案的打包方式,預設使用jar -->
  <name>maven專案模板的基本使用</name>
  <description> 這裡的描述不知道是幹嗎用</description>
   
   <properties>
        <springframework.version>2.5.6</springframework.verson>
        <!-- 歸類依賴 只需在  <version>${springframework.version}</version>  使用就可以了-->
   </properties>

<dependencies>
    <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.7</version>
          <!-- <type>依賴的型別,大部分情況下不必宣告 預設是jar</type> -->
          <scope>test</scope>  <!--  依賴範圍  傳遞性依賴 詳見p63 -->
          <!-- <optional>標記依賴是否可選 不明白 該處的值是 true 和 false 詳見p66</optional> -->
          <!--
                <exclusions>
                    <exclusion>
                        排除傳遞性依賴 只需列出如下的2項就可以了
                        <groupId></groupId>
                        <artifactId></artifactId>
                    </exclusion>
                </exclusions>
          -->
    </dependency>
</dependencies>




<build>
    <plugins>
        <!-- 設定這個外掛的對應java版本,貌似是為了解決一個歷史問題-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
        <!-- 如下使用UTF-8 處理資原始檔 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                 <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>


<!--  配置遠端版本倉庫  -->
<repositories>
    <!-- 設定遠端版本庫  直接收發布版本 不接受快照版本-->
    <repository>
        <id>jboss</id>  <!-- 如果是用central 就會覆蓋中央倉庫 -->
        <name>JBoss Repository</name>
        <url>http://repository.jboss.com/maven2/</url>
        <release>
            <enabled>true</enabled>
            <!-- 如下的2個引數詳見p83
            <updatePolicy>daily</updatePolicy>  
            <checksumPolicy>ignore</checksumPolicy>
            -->
        </release>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <layout>default</layout>
    </repository>
</repositories>



<!--  將該專案 釋出到遠端倉庫中 -->
<distributionManagement>
    <repository>
        <id>proj-release</id>   <!--  這裡的id是為了 跟setting.xml中的 username  和 userpassword 的id匹配,有的倉庫需要許可權賬戶-->    
        <name>Proj Release Repository</name>
        <url>http://192.168.89.130</url>
    </repository>
    <snapshotRepository>
        <id>proj-release</id>
        <name>Proj Release Repository</name>
        <url>http://192.168.89.130</url>
    </snapshotRepository>
</distributionManagement>

</build>
</project>