<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    rosial

    lost memory
    數(shù)據(jù)加載中……

    zz - Maven學(xué)習(xí)總結(jié)

    原文地址:http://www.cnblogs.com/hanwesley/articles/1948230.html

    Maven學(xué)習(xí)總結(jié)

    2011-01-31 12:26 by hanwesley, 603 visits, 收藏編輯

    Maven簡單介紹

    Maven是基于項目對象模型(Project Object Model),可以通過一小段描述信息來管理項目的構(gòu)建,報告和文檔的軟件項目管理工具.

    掌握maven就是要學(xué)會如何編寫pom.xml,尤其對于多個子項目的管理

    約定俗成

    src/main/java  存放Java文件

    src/main/resources  存放資源文件

    src/main/test  存放測試文件

    Maven坐標(biāo)

    <groupId>com.ibatis</groupId>  項目屬于哪個組

    <artifactId>ibatis-sqlmap</artifactId>  項目在組中唯一的ID

    <version>2.1.0.565</version>  項目當(dāng)前的版本

    <name>ibatis sqlmap包</name>  非必需,描述信息

    在Maven中任何的jar,POM,或者war都是基于坐標(biāo)進(jìn)行區(qū)分的

    Maven主項目和子項目管理的不同

      主項目jar包版本統(tǒng)一管理

    <dependencyManagement>

      子項目不用指定jar包版本

    指定當(dāng)前項目的坐標(biāo):

    <groupId>com.taobao.newLauncher</groupId>

    <artifactId>newLauncher-biz-home</artifactId>

    <name>newlauncher-biz-home</name>

    <version>1.0.0</version>

    <packaging>jar</packaging>

    如果是主pom文件, packaging指定為pom

    如果是要生成的war包,packaging指定為war

     

    主項目指定子項目

        <modules>

           <module>newlauncher-biz-core</module>

           <module>newlauncher-biz-home</module>

      </modules>

     

    子項目需要指定parent

      <parent>

           <artifactId>newLauncher</artifactId>

           <groupId>com.taobao.newLauncher</groupId>

           <version>1.0.0</version>

    </parent>

    Maven命令

    mvn clean     刪除target目錄內(nèi)容

    mvn package   打包

    mvn install   讓項目真正引用生成的jar包

    mvn test      執(zhí)行測試用例

    Maven插件

    1)maven-compiler-plugin 指定JDK版本

          <plugin>

                 <artifactId>maven-compiler-plugin</artifactId>

                 <version>2.3.2</version>

                 <configuration>

                  <source>1.6</source>

                  <target>1.6</target>

                  <showWarnings>true</showWarnings>

                  <encoding>gbk</encoding>

                 </configuration>

                 <dependencies>

                  <dependency>

                    <groupId>org.codehaus.plexus</groupId>

                    <artifactId>plexus-compiler-javac</artifactId>

                    <version>1.8.1</version>

                  </dependency>

                 </dependencies>

           </plugin>

     

    2)maven-war-plugin 打war包 在web子項目中指定

     

    <build>          

        <finalName>launcher</finalName>

        <directory>target/jboss</directory>

         <plugins>

                 <plugin>

                    <groupId>org.apache.maven.plugins</groupId>

                    <artifactId>maven-war-plugin</artifactId>

                    <version>2.1.1</version>

                    <configuration>

                        <webResources>

                            <resource>

    <directory>src/main/resources</directory>

                                <filtering>true</filtering>

                                <includes>

                                    <include>**/*.xml</include>

                                    <include>**/*.vm</include>

                                </includes>

                                <targetPath>WEB-INF</targetPath>

                            </resource>   

                        </webResources>

                    </configuration>

                </plugin>

            </plugins>

    </build>

     

    3)單元測試插件

     

    <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <version>2.6</version>

        <configuration>

           <testFailureIgnore>true</testFailureIgnore>

     <!-單元測試失敗依然打包-->

           <skip>true</skip> 是否過濾單元測試

           <!--<includes>

               <include>**/*Test.java</include>

           </includes>-->

           <excludes>

               <exclude>**/*Test.java</exclude>

             </excludes>

        </configuration>

    </plugin>

     

    4)jar包插件

     

    <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-jar-plugin</artifactId>

        <version>2.3.1</version>

        <configuration>

           <archive>

              <addMavenDescriptor>false</addMavenDescriptor>

    是否增加maven描述信息

               <manifest>

    <addDefaultImplementationEntries>

    true

    </addDefaultImplementationEntries>

               </manifest>

               <manifestEntries>

              <Implementation-Build>${buildNumber}</Implementation-Build>

               </manifestEntries>

           </archive>

        </configuration>

    </plugin>

     

    5)resource插件  類似antx的auto-config功能

    Mvn package –Pdev  dev即定義的ID

    Antx中的屬性文件在Maven中如何引用?

    在主pom.xml中增加配置屬性 

    <profiles>中可以有多個profile, id需唯一

     

    <profiles>

           <profile>

               <id>dev</id>

               <properties>

               <props>launcher.properties.dev</props>

      <dependency.version.ext>-SNAPSHOT</dependency.version.ext>

               </properties>

               <activation>

                  <activeByDefault>true</activeByDefault>

    是否默認(rèn)引用此文件 如果此項為true,引用此文件 參數(shù)-P可以不加

               </activation>

           </profile>

        </profiles>

     

    根據(jù)外部屬性文件填寫需要過濾文件中的變量,默認(rèn)會生成到classes目錄

     

    <filters>

               <filter>jdbc.properties.dev</filter>

    Filter 配置項指定過濾那個文件?

    1) 可以寫文件名

    2) 也可以寫-P指定的profile ,

    引用的是上述定義的profile dbc.properties.dev替換為../${props}

           </filters>

           <resources>

               <resource>

                  <directory>src/main/resources</directory>

                  <filtering>true</filtering>

    true需要過濾,false不需要過濾

                  <includes>  需要過濾的文件

                      <include>**/*.*</include>

                      <include>**/*</include>

                  </includes>

                  <excludes> 那些文件不需要移動到classes目錄

                  <exclude>**/*.xml</exclude>

                  <exclude>**/*.vm</exclude>

                  </excludes>

               </resource>

               <resource>

                  <directory>src/main/java</directory>

                  <includes>

                      <include>**/*.xml</include>

                  </includes>

               </resource>

           </resources>

    6)maven-eclipse-plugin插件

        <plugin>

                      <groupId>org.apache.maven.plugins</groupId>

                      <artifactId>maven-eclipse-plugin</artifactId>

                      <version>2.8</version>

                      <configuration>

                         <sourceExcludes>

                             <sourceExclude>**/.svn/</sourceExclude>

                         </sourceExcludes>

                         <downloadSources>true</downloadSources>

                      </configuration>

                  </plugin>

    Maven庫配置

    Maven從中央倉庫下載這些資源文件,如果需要修改項目的下載地址,可以在主pom.xml文件中加入:

    <repositories></repositories> 中任意增加repository倉庫

    <repository>

         <id>simba-nexus</id>

    <url>http://mvnrepo.maven.com/nexus/content/repositories/releases</url>

         <releases>

           <enabled>true</enabled>

        </releases>

        <snapshots>

           <enabled>false</enabled>

        </snapshots>

    </repository>

    posted on 2011-11-17 15:37 rosial 閱讀(570) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 黄色免费在线网址| 亚洲精品无播放器在线播放 | 久久综合给合久久国产免费| 中文字幕精品无码亚洲字| 国产成人精品日本亚洲语音| 日本高清免费网站| 国产精品亚洲lv粉色| 免费在线观看的黄色网址| 国产精品黄页免费高清在线观看| 精品亚洲一区二区三区在线播放| 国产日韩精品无码区免费专区国产 | 久久精品亚洲中文字幕无码网站 | 中文字幕无码免费久久9一区9| 亚洲人成图片小说网站| 水蜜桃视频在线观看免费播放高清| 国产亚洲精AA在线观看SEE| 日韩精品无码免费一区二区三区 | **一级一级毛片免费观看| 亚洲三级在线观看| 日韩免费a级在线观看| 一级做a爰片性色毛片免费网站| 精品亚洲成α人无码成α在线观看 | 国产在线19禁免费观看国产| 国产午夜亚洲精品不卡| 中文字幕亚洲第一| 久久免费线看线看| 亚洲人成网国产最新在线| heyzo亚洲精品日韩| 麻豆精品成人免费国产片| 亚洲一区二区三区久久| 免费人妻av无码专区| 任你躁在线精品免费| 亚洲av永久综合在线观看尤物| 国产成人免费ā片在线观看| 国产在线国偷精品免费看| 亚洲成a人片7777| 无码不卡亚洲成?人片| 99精品视频在线观看免费专区| 美女视频黄免费亚洲| 亚洲人成网站在线播放vr | 深夜国产福利99亚洲视频|