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

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

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

    rosial

    lost memory
    數據加載中……

    zz - Maven學習總結

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

    Maven學習總結

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

    Maven簡單介紹

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

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

    約定俗成

    src/main/java  存放Java文件

    src/main/resources  存放資源文件

    src/main/test  存放測試文件

    Maven坐標

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

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

    <version>2.1.0.565</version>  項目當前的版本

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

    在Maven中任何的jar,POM,或者war都是基于坐標進行區分的

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

      主項目jar包版本統一管理

    <dependencyManagement>

      子項目不用指定jar包版本

    指定當前項目的坐標:

    <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目錄內容

    mvn package   打包

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

    mvn test      執行測試用例

    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>

    是否默認引用此文件 如果此項為true,引用此文件 參數-P可以不加

               </activation>

           </profile>

        </profiles>

     

    根據外部屬性文件填寫需要過濾文件中的變量,默認會生成到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 閱讀(571) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 免费v片在线观看无遮挡| 最新仑乱免费视频| 国产成人精品日本亚洲专区61 | 两个人日本WWW免费版 | 亚洲日韩区在线电影| 嫩草在线视频www免费观看| 亚洲av无码专区国产乱码在线观看| 四虎影视无码永久免费| 亚洲av日韩av不卡在线观看| 91成人在线免费观看| 亚洲乱码一二三四区国产| 成年女人免费碰碰视频| 亚洲AV无码AV男人的天堂不卡| 国产免费直播在线观看视频| 高潮毛片无遮挡高清免费| 红杏亚洲影院一区二区三区| 午夜影院免费观看| 亚洲国产夜色在线观看| 在线视频免费观看www动漫| 老司机午夜在线视频免费观| 自拍偷自拍亚洲精品情侣| 免费不卡在线观看AV| 亚洲男人天堂2022| 亚洲第一永久AV网站久久精品男人的天堂AV | a级毛片无码免费真人久久| 亚洲天堂男人天堂| 久久久久国色AV免费观看性色| 看免费毛片天天看| 亚洲AV无码码潮喷在线观看| 日韩国产免费一区二区三区| 牛牛在线精品免费视频观看| 亚洲AV无码久久精品蜜桃| 在线观看日本免费a∨视频| 无码AV动漫精品一区二区免费| 久久国产亚洲电影天堂| 日韩免费一区二区三区| 国产性生大片免费观看性| 亚洲一区二区三区播放在线| 亚洲中文字幕无码永久在线| 久久精品女人天堂AV免费观看| 日韩在线一区二区三区免费视频|