<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲av区一区二区三| 亚洲欧美熟妇综合久久久久| 国产成人精品免费直播| 久久亚洲国产精品| 免费a级毛片网站| 在线观看免费高清视频| 久久精品无码专区免费青青| 国产一级a毛一级a看免费人娇 | 亚洲精品永久在线观看| 亚洲第一成年网站大全亚洲| 亚洲精品乱码久久久久久久久久久久 | 免费日本一区二区| 国产精品hd免费观看| 国产av无码专区亚洲av毛片搜| 久久精品国产99国产精品亚洲| 国产伦一区二区三区免费| 国产做国产爱免费视频| 亚洲大尺码专区影院| 久久久无码精品亚洲日韩蜜桃 | 美女视频黄视大全视频免费的| 亚洲av成人一区二区三区| 久久精品亚洲综合一品| 亚洲人成在线播放网站| 亚洲中文字幕在线观看| 免费观看成人毛片a片2008| 一级女人18片毛片免费视频 | 免费无码又黄又爽又刺激| 91成人免费观看| 99爱免费观看视频在线| 人妻丰满熟妇无码区免费| 久久这里只精品热免费99| 可以免费观看的国产视频| 在线人成免费视频69国产| 亚洲AV无码XXX麻豆艾秋| 亚洲欧美中文日韩视频| 亚洲av无码专区青青草原| 亚洲欧美乱色情图片| 亚洲av成人片在线观看| 国产精品亚洲一区二区三区久久| 校园亚洲春色另类小说合集| 永久免费无码网站在线观看个|