使用Maven進行依賴管理和項目構建


什么是Maven

1 依賴的管理:僅僅通過jar包的幾個屬性,就能確定唯一的jar包,在指定的文件pom.xml中,只要寫入這些依賴屬性,就會自動下載並管理jar包。 2 項目的構建:內置很多的插件與生命周期,支持多種任務,比如校驗、編譯、測試、打包、部署、發布... 3 項目的知識管理:管理項目相關的其他內容,比如開發者信息,版本等等 

官網:http://maven.apache.org/

Maven庫:http://repo2.maven.org/maven2/ 

中央倉庫資源:http://mvnrepository.com/

 

 

下載安裝

 去maven的官網上下載,http://maven.apache.org/download.cgi,根據自己電腦的實際情況選擇對應的文件。

下載完畢后將其解壓到任意位置,例如我的電腦上就是D:\maven\apache-maven-3.2.5

 

Maven環境配置

注意:安裝maven之前,必須先確保你的機器中已經安裝了JDK,如果是Maven3則必須JDK1.7以上。

1.解壓壓縮包

2.添加環境變量MAVEN_HOME,值為apache-maven的安裝路徑:D:\maven\apache-maven-3.2.5

3.在Path環境變量的變量值末尾添加%MAVEN_HOME%\bin;

4.在cmd輸入mvn –version,如果出現maven的版本信息,說明配置成功。

 

 

本地倉儲配置

 如果您不配置,默認會在如下位置存放從遠程下載到的包:

從中央倉庫下載的jar包,都會統一存放到本地倉庫中。我們需要配置本地倉庫的位置。

打開maven安裝目錄,打開conf目錄下的setting.xml文件。

可以參照下圖配置本地倉儲位置。

 

修改默認中央倉庫地址:D:\MavenResponse

 

 

Ecplise使用Maven

1.插件安裝

依次選擇Eclipse菜單欄的“Help”菜單à“Instance NewSoftWare”菜單項,就會彈出如下對話窗口:

,然后點擊add按鈕,會出現一個對話框,這個對話框就是用於添加一個插件地址的。在“Name”對應的輸入框里輸入該操作的一個標識名。在“Location”對應的輸入框里輸入這個插件的安裝地址。注:Maven的Eclipse插件地址為:http://download.eclipse.org/technology/m2e/releases。輸入后,如下圖所示:

 2.Ecplise配置maven

 

 

Maven常用的命令

以下所有的命令都要在項目的根目錄下進行。
Maven提供了一套命令,我們可以在dos小黑窗中使用,當對Maven項目使用這些命令的時候我們應該切換到該項目的根目錄下。
命令一:
mvn clean
這個命令可以清除我們的target文件夾(這個文件夾存放編譯后的.class文件)

命令二:
mvn compile
和上面的命令相反,這個命令是編譯一個項目的,前提是我們當前命令行位置為該項目的根目錄下。

命令三:
mvn test
這個命令可以進行單元測試,測試test文件夾下的方法(test文件夾下的java文件格式名為:XxxTest.java)

命令四:
mvn package
將項目打包,如果是java項目就打包為.jar文件,如果是web項目及打包成.war文件。

命令五:
mvn install
將一個項目打包放在本地倉庫中,以便多個項目使用。

 

 

 

創建Maven項目容易出現的問題

 

Maven的常規使用

1.設置全局的jdk,在setting.xml文件中的profiles元素下添加如下profile元素:

<profile>  
    <id>jdk17</id>  
    <activation>  
        <activeByDefault>true</activeByDefault>  
        <jdk>1.8</jdk>  
    </activation>  
    <properties>  
        <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>   
</profile> 
View Code

2.設置局部的jdk,在項目的pom,xml文件中添加如下build元素:

<build>  
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-compiler-plugin</artifactId>  
            <configuration>  
                <source>1.8</source>  
                <target>1.8</target>
                <encoding>UTF-8</encoding>  
            </configuration>  
        </plugin>  
    </plugins>  
</build>  
View Code

3.添加依賴

我們在Maven項目中創建一個Servlet,我們需要導入servlet-api.jar,只要在pom.xml 的dependencies視圖下進行add就好了。

4.依賴范圍

在我們設置依賴的時候,會有一項Scope,里面有:
compile,provided,runtime,test,system五項。
這里寫圖片描述
(圖片來自網絡)

Maven默認的是compile,即對於編譯classpath,測試classpath,運行時classpath 都需要這個jar包。
尤其值得注意的是provided,這個就像servlet-api那樣,我們編譯測試都需要這個jar包,但是當上傳到服務器的時候就不再需要了(Tomcat的lib下有),如果這里我們默認compile,那么當程序在服務器上運行的時候將出現jar包的沖突!

 

5.Maven工程的多模塊項目、項目與項目之間的引用

  1)父項目  

<?xml version="1.0" encoding="UTF-8"?>
<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.kamfu.ats.cw</groupId>
    <artifactId>cw-parent</artifactId>
    <version>20190807-RELEASE</version>
    <packaging>pom</packaging>
    <!-- 多模塊配置:根據子模塊的相互依賴關系整理一個build順序,然后依次build -->
    <modules>
        <module>kf.ats.gvnsvr.client</module>
        <module>kf.ats.gvnsvr.base</module>
    </modules>
    <repositories>
        <repository>
            <id>public</id>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>public</id>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>
    <properties>
        <ggywpt.version>20190807-RELEASE</ggywpt.version>
        <ywzcxt.version>20190807-RELEASE</ywzcxt.version>
        <jcpt.version>20190807-RELEASE</jcpt.version>
        <ats55.version>20190807-RELEASE</ats55.version>
        <sbglq.version>20190807-RELEASE</sbglq.version>
        <parent-version>20190807-RELEASE</parent-version>        
    </properties>

    <dependencies>
        <dependency>
          <groupId>com.spire</groupId>
          <artifactId>pdf</artifactId>
          <version>1.0</version>
        </dependency>     

        <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>com.kamfu.ats.ywzcxt</groupId>-->
            <!--<artifactId>kf.ats.plt.supervisor.common</artifactId>-->
        <!--</dependency>-->


        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>htmlunit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
        </dependency>
        <dependency>
            <groupId>com.gd</groupId>
            <artifactId>gd-security</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>com.cndatacom</groupId>
            <artifactId>commons-best</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sybase</groupId>
            <artifactId>jconn3</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu</groupId>
            <artifactId>kamfu-encrypt</artifactId>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
        </dependency>
        <dependency>
            <groupId>com.gdca</groupId>
            <artifactId>pasp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jdom</groupId>
            <artifactId>jdom2</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                 <version>5.5.12</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jdom</groupId>
                <artifactId>jdom2</artifactId>
                <version>2.0.6</version>
            </dependency>
            <dependency>
                <groupId>com.gdca</groupId>
                <artifactId>pasp</artifactId>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>com.lowagie</groupId>
                <artifactId>itext</artifactId>
                <version>2.0.6</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu</groupId>
                <artifactId>kamfu-encrypt</artifactId>
                <version>1.0.0</version>
            </dependency>
            
            <!-- jcpt -->      
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>jcpt-parent</artifactId>
                <version>${jcpt.version}</version>
                <type>pom</type>
            </dependency>                  
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>kf.ats.plt.resources</artifactId>
                <version>${jcpt.version}</version>
            </dependency>            
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>kf.ats.plt.minisys.clientapp</artifactId>
                <version>${jcpt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.jcpt</groupId>
                <artifactId>kf.ats.plt.base</artifactId>
                <version>${jcpt.version}</version>
            </dependency>       
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>kf.ats.plt.base.extend</artifactId>
                <version>${jcpt.version}</version>
            </dependency>                         
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>kf.ats.plt.core</artifactId>
                <version>${jcpt.version}</version>
            </dependency>                     
            
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats55.platform</groupId> -->
<!--                 <artifactId>kf.ats.plt.server.compatible</artifactId> -->
<!--                 <version>20190807-RELEASE</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats55.platform</groupId> -->
<!--                 <artifactId>kf.ats.plt.common.compatible</artifactId> -->
<!--                 <version>0.0.1-20181003.071009-4</version> -->
<!--             </dependency> -->
            
            
            <!-- ggywpt -->
            <dependency>
                <groupId>com.kamfu.ats.ggywpt</groupId>
                <artifactId>kf.ats.buss.front</artifactId>
                <version>${ggywpt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ggywpt</groupId>
                <artifactId>kf.ats.buss.back</artifactId>
                <version>${ggywpt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ggywpt</groupId>
                <artifactId>kf.ats.buss.common</artifactId>
                <version>${ggywpt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ggywpt</groupId>
                <artifactId>kf.ats.buss.common.extend</artifactId>
                <version>${ggywpt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ggywpt</groupId>
                <artifactId>kf.ats.buss.pay.weixin</artifactId>
                <version>${ggywpt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ywzcxt</groupId>
                <artifactId>kf.ats.oam.client</artifactId>
               <version>${ggywpt.version}</version>
            </dependency>
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.ywzcxt</groupId> -->
<!--                 <artifactId>kf.ats.plt.supervisor.web</artifactId> -->
<!--                 <version>${ywzcxt.version}</version> -->
<!--                 <type>war</type> -->
<!--             </dependency> -->
            <dependency>
                <groupId>com.kamfu.ats.ywzcxt</groupId>
                <artifactId>kf.ats.plt.supervisor.common</artifactId>
                <version>${ywzcxt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ywzcxt</groupId>
                <artifactId>kf.ats.plt.supervisor.client</artifactId>
                <version>${ywzcxt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ywzcxt</groupId>
                <artifactId>kf.ats.plt.supervisor.server</artifactId>
                <version>${ywzcxt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ywzcxt</groupId>
                <artifactId>kf.ats.plt.supervisor.server.ui</artifactId>
                <version>${ywzcxt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.ywzcxt</groupId>
                <artifactId>kf.ats.oam.server</artifactId>
                <version>${ywzcxt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.sbglq</groupId>
                <artifactId>kf.ats.plt.client.base.extend</artifactId>
                <version>${sbglq.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.sbglq</groupId>
                <artifactId>kf.ats.plt.client.base</artifactId>
                <version>${sbglq.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>kf.ats.plt.minisys.serverapp</artifactId>
                <version>${jcpt.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.kamfu.ats.jcpt</groupId>
                        <artifactId>kf.ats.plt.minisys.pub</artifactId>
                    </exclusion>                    
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.jcpt</groupId>
                <artifactId>kf.ats.plt.core.ui</artifactId>
                <version>${jcpt.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>2.0.4</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.htmlunit</groupId>
                <artifactId>htmlunit</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.12</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.12</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>2.0.4</version>
            </dependency>
            <dependency>
                <groupId>com.gd</groupId>
                <artifactId>gd-security</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils-core</artifactId>
                <version>1.8.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.axis</groupId>
                <artifactId>axis</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>org.jsoup</groupId>
                <artifactId>jsoup</artifactId>
                <version>1.6.1</version>
            </dependency>
            <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>2.4</version>
                <classifier>jdk15</classifier>
            </dependency>
            <dependency>
                <groupId>com.cndatacom</groupId>
                <artifactId>commons-best</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>com.sybase</groupId>
                <artifactId>jconn3</artifactId>
                <version>3-6.0</version>
            </dependency>
            <dependency>
                <groupId>javax.xml</groupId>
                <artifactId>jaxrpc</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>1.52</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>4.3</version>
            </dependency>
            <dependency>
                <groupId>commons-discovery</groupId>
                <artifactId>commons-discovery</artifactId>
                <version>0.5</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.base</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.client</artifactId>
                <version>${project.version}</version>
            </dependency>
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.ay</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.gddg</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.gdstb</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.gz</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.jd</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.jimo</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.jm</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.kaifeng</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.mzmx</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.nansha</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.qy</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.client.sc</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.client.taizhou</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.client.tzlq</artifactId>
                <version>${project.version}</version>
            </dependency>            
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.server</artifactId>
                <version>${project.version}</version>
            </dependency>
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.ay</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.gddg</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.gdstb</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.gdxn</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.gz</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.gzlw</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.jd</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.jimo</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.kaifeng</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.jm</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.mzmx</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.nansha</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.qy</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.sc</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.server.taizhou</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.server.tzlq</artifactId>
                <version>${project.version}</version>
            </dependency>                        
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.ui</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.server.ui.gdstb</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.visibledecrypttool</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--             </dependency> -->
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.gvnsvr.serverapp</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--                 <type>war</type> -->
<!--             </dependency> -->
            <dependency>
                <groupId>com.kamfu.ats.log</groupId>
                <artifactId>kf.log.logencrypt</artifactId>
                <version>${project.version}</version>
            </dependency>
<!--             <dependency> -->
<!--                 <groupId>com.kamfu.ats.cw</groupId> -->
<!--                 <artifactId>kf.ats.plt.app.installdir</artifactId> -->
<!--                 <version>${project.version}</version> -->
<!--                 <type>pom</type> -->
<!--             </dependency> -->
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>gvnsvr.axis2.stub</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.kamfu.ats.cw</groupId>
                <artifactId>kf.ats.gvnsvr.supervisor.web</artifactId>
                <version>${project.version}</version>
                <type>war</type>
            </dependency>
            
                 <dependency>
                  <artifactId>hessian</artifactId>
                  <groupId>com.caucho</groupId>
                  <version>4.0.38</version>
              </dependency>  
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.0.0</version>
                    <configuration>
                        <descriptors>
                            <descriptor>src/assembly/bin.xml</descriptor>
                        </descriptors>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>                
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-source-plugin</artifactId>
                      <version>3.0.1</version>
                      <configuration>
                         <attach>true</attach>
                      </configuration>
                     <executions>
                         <execution>
                             <phase>compile</phase>
                                 <goals>
                                    <goal>jar</goal>
                                 </goals>
                         </execution>
                    </executions>
                </plugin>                
            </plugins>
        </pluginManagement>
    </build>
    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>
pom.xml

  2)子項目

<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>
    <artifactId>kf.ats.gvnsvr.base</artifactId>
    <parent>
        <groupId>com.kamfu.ats.cw</groupId>
        <artifactId>cw-parent</artifactId>
        <version>20190807-RELEASE</version>
        <relativePath>../cw-parent</relativePath>
    </parent>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
    </build>
    <dependencies>
<!--         <dependency> -->
<!--             <groupId>com.kamfu.ats55.platform</groupId> -->
<!--             <artifactId>kf.ats.plt.server.compatible</artifactId> -->
<!--         </dependency> -->
        <dependency>
            <groupId>com.kamfu.ats.cw</groupId>
            <artifactId>kf.ats.gvnsvr.common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu.ats.sbglq</groupId>
            <artifactId>kf.ats.plt.client.base.extend</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu.ats.ggywpt</groupId>
            <artifactId>kf.ats.buss.front</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu.ats.ggywpt</groupId>
            <artifactId>kf.ats.buss.back</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu.ats.jcpt</groupId>
            <artifactId>kf.ats.plt.minisys.clientapp</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu.ats.ywzcxt</groupId>
            <artifactId>kf.ats.oam.client</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kamfu.ats.ywzcxt</groupId>
            <artifactId>kf.ats.plt.supervisor.client</artifactId>
        </dependency>
    </dependencies>
</project>
pom.xml

 

 

6.Maven本地項目之間的相互依賴

被依賴項目

當前項目

 

 

7.maven的兩種可運行jar打包方式。

  1、內置依賴,

<plugins>
            <!-- 內置打包法 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <!-- 用這個maven打包插件 -->
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <!-- 默認值為true.注意這個屬性,如果你用這個插件來deploy,或者發布到中央倉庫,這個屬性會縮減你的pom文件,會把你依賴的<dependency>干掉 -->
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.handlers</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.schemas</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <!-- 這個是你的程序入口文件 -->
                                    <mainClass>com.alibaba.dubbo.container.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <!-- 設置字符編碼集 -->
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
View Code

 

  2、外部依賴。

<plugins>
            <!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <classesDirectory>target/classes/</classesDirectory>
                    <archive>
                        <manifest>
                            <mainClass>com.alibaba.dubbo.container.Main</mainClass>
                            <!-- 打包時 MANIFEST.MF文件不記錄的時間戳版本 -->
                            <useUniqueVersions>false</useUniqueVersions>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>.</Class-Path>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <type>jar</type>
                            <includeTypes>jar</includeTypes>
                            <useUniqueVersions>false</useUniqueVersions>
                            <outputDirectory>
                                ${project.build.directory}/lib
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
View Code

 

8.maven上傳源碼到私服  

                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-source-plugin</artifactId>
                      <version>3.0.1</version>
                      <configuration>
                         <attach>true</attach>
                      </configuration>
                     <executions>
                         <execution>
                             <phase>compile</phase>
                                 <goals>
                                    <goal>jar</goal>
                                 </goals>
                         </execution>
                    </executions>
                </plugin> 
pom.xml

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM