1. 程式人生 > >pom.xml常用的包及實用的幾個外掛

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>
  <groupId>project</groupId>
  <artifactId>commend</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>commend Maven Webapp</name>
  <url>http://maven.apache.org</url>
 
  <properties>
   <!-- 讓整個專案統一字符集編碼 -->
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <!-- 解決打包時亂碼 -->
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   <!-- 編譯時的編碼 -->
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    <!-- 為了下面使用的${org.springframework.version} -->
    <org.springframework.version>4.0.0.RELEASE</org.springframework.version>
    <org.mybatis.version>3.4.1</org.mybatis.version>
    <org.mybatis.spring.version>1.3.0</org.mybatis.spring.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
   
    <!-- .jsp檔案包 -->
    <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>3.0.1</version>
    </dependency>
   
    <!--java訪問mysql資料庫的包-->
    <dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.25</version>
 </dependency>
 
 <!-- JSP標籤庫 -->
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>javax.servlet.jsp.jstl-api</artifactId>
        <version>1.2.1</version>
    </dependency>
    <!--tag自定義JSP標籤庫-->
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>
 
 <!--Spring AOP特性所需-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--提供對AspectJ的支援,面向切面程式設計,以便可以方便的將面向方面的功能整合進IDE中
     spring-aspects 還需要 aspectjweaver.jar才能工作-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!-- 處理事務和AOP所需的包 提供註解-->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.6.11</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.9</version>
    </dependency>
   
    <!--包含訪問配置檔案、建立和管理bean 以及進行IOC操作相關的所有類,在xml中配置<bean></bean>使用-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--Spring提供在基礎IoC功能上的擴充套件服務,此外還提供許多企業級服務的支援,
        如郵件服務、任務排程、JNDI定位、EJB整合、遠端訪問、快取以及各種檢視層框架的封裝等-->
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
       <version>${org.springframework.version}</version>
   </dependency>
   <!--Spring-context的擴充套件支援,提供支援整合常見的第三方庫,特別是快取和排程,用於MVC方面。-->
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context-support</artifactId>
       <version>${org.springframework.version}</version>
   </dependency>
   <!-- 在類中的連線資料庫的jdbc,需要common-dbcp.jar,common-pool.jar,common-collections.jar。三個包-->
   <dependency>
       <groupId>commons-dbcp</groupId>
       <artifactId>commons-dbcp</artifactId>
       <version>1.4</version>
   </dependency>
   <!--JDBC連線池-->
   <dependency>
       <groupId>c3p0</groupId>
       <artifactId>c3p0</artifactId>
       <version>0.9.1.2</version>
   </dependency>
    <!-- 對JDBC的簡單封裝 Spring依賴 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--對Junit等測試框架的簡單封裝-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--為JDBC、Hibernate、JDO、JPA等提供的一致的宣告式和程式設計式事務管理-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--Web應用開發時,用到Spring框架時所需的核心類,
          包括自動載入WebApplicationContext特性的類、Struts與JSF整合類、檔案上傳的支援類、Filter類和大量工具輔助類-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--包含SpringMVC框架相關的所有類。包含國際化、標籤、Theme、檢視展現的FreeMarker、JasperReports-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!--Spring對於object/xml對映的支援,可以讓JAVA與XML之間來回切換-->
    <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-oxm</artifactId>
     <version>${org.springframework.version}</version>
 </dependency>
 
    <!-- mybatis包 -->
    <dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>${org.mybatis.version}</version>
 </dependency>
 <!-- ssm框架整合時必需的包 -->
 <dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>${org.mybatis.spring.version}</version>
 </dependency>
 
 <!-- 時間包 可以使用一些時間的轉換-->
 <dependency>
  <groupId>joda-time</groupId>
  <artifactId>joda-time</artifactId>
  <version>2.3</version>
 </dependency>
 
 <!-- 定義了底層的streaming API和實現了Json特性。 -->
 <dependency> 
   <groupId>com.fasterxml.jackson.core</groupId> 
   <artifactId>jackson-core</artifactId> 
   <version>2.7.4</version> 
 </dependency> 
   <!-- 包含了標準的Jackson註解。 -->
 <dependency> 
   <groupId>com.fasterxml.jackson.core</groupId> 
   <artifactId>jackson-annotations</artifactId> 
   <version>2.7.4</version> 
 </dependency> 
 <!-- 實現了資料繫結和物件序列化,它依賴於streaming和annotations的包。 -->
 <dependency> 
   <groupId>com.fasterxml.jackson.core</groupId> 
   <artifactId>jackson-databind</artifactId> 
   <version>2.7.4</version> 
 </dependency>
 <!-- 上面三個是2.x的版本,和下面的1.9的功能相同  @ResponseBody傳輸json格式資料需要的jar包 -->
 <!-- 功能為實體類變為json和把json變為實體類,實體類變為json,ObjectMapper物件只把public的類成員變數或者有get方法的變數寫為json串(set方法可以沒有). -->
 <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.12</version>
    </dependency>
    <!-- 上面的用法如下:
     String s = "{\"name\":123}";      
        ObjectMapper mapper = new ObjectMapper(); 
        //unmarshalling (reading JSON)   
        User a = mapper.readValue(s, User.class);         
        //marshalling (reading JSON) 
        //{"name":123} 
        System.out.println(mapper.writeValueAsString(a));   -->
       
 <!-- org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray類.
 和其他解析工具相比要輕量的多隻需要匯入org,json的jar包即可,不用依賴其他的jar包。 -->
 <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20160810</version>
    </dependency>
 <!--檔案上傳-->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.1</version>
    </dependency>
    <!--針對開發IO流功能的工具類庫-->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
   
    <!-- logback實現日誌  -->
 <dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.1.7</version>
 </dependency>
 <dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
  <version>1.1.7</version>
 </dependency>
 
 <!-- 提高程式碼美觀性 -->
 <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>20.0</version>
    </dependency>
    <!--
     舊:Map<String, Map<String, String>> map = new HashMap<String, Map<String,String>>();
     新:Map<String, Map<String, String>> map = Maps.newHashMap();
  舊:List<List<Map<String, String>>> list = new ArrayList<List<Map<String,String>>>();
  新:List<List<Map<String, String>>> list = Lists.newArrayList();
  舊:Set<String> set = new HashSet<String>();
   set.add("one");
   set.add("two");
   set.add("three");
  新:Set<String> set = Sets.newHashSet("one","two","three");
     -->
    
     <!-- 工具包,用於對jdk工具包的補充 例如StringUtils-->
     <!-- Apache Commons包中的一個,包含了一些資料型別工具類,是java.lang.*的擴充套件。 -->
     <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
         <version>3.5</version>
     </dependency>
    
     <!-- 集合工具類,ListUtils和CollectionUtils。-->
     <!-- Apache Commons包中的一個,包含了一些Apache開發的集合類,功能比java.util.*強大。-->
     <!-- ListUtils.intersection(list1,list2)取交集
  ListUtils.subtract(list1,list2)返回list1和list2的差。這裡和list1.removeAll(list2)的差別在於:
  前者不改變任何一個集合,如果list1中有2個a,list2中有一個a:removeAll會將list1中所有的a都抹去,而subtract結果list1仍然會剩下一個a
  ListUtils.union(list1,list2)取並集 ListUtils.removeAll(list1,list2)不改變list的情況下做removeAll-->
     <dependency>
     <groupId>commons-collections</groupId>
     <artifactId>commons-collections</artifactId>
     <version>3.2.1</version>
     </dependency>
    
     <!-- @Data  作用在類上,為所有的屬性自動新增setter,getter方法,@ToString,
    @Setter @Getter 作用在類上,為所有的屬性自動新增setter,getter方法
    @NonNull 該註解快速判斷是否為空,如果為空,則丟擲java.lang.NullPointerException,可以幫助我們避免空指標。
    @Synchronized 該註解自動新增到同步機制,有趣的是,生成的程式碼並不是直接鎖方法,而是鎖程式碼塊, 作用範圍是方法上
    @ToString 有多個屬性可以進一步設定:callSuper 是否輸出父類的toString方法,預設為false,includeFieldNames 是否包含欄位名稱,預設為true,exclude 排除生成tostring的欄位
    @NoArgsConstructor: 自動生成無引數建構函式。
    @AllArgsConstructor: 自動生成全引數建構函式。
    @Cleanup 自動幫我們呼叫close()方法。 -->
     <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <version>1.16.18</version>
         <scope>provided</scope>
     </dependency>
    
     <!-- 針對Excel表格 -->
     <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>3.10-FINAL</version>
     </dependency>
  </dependencies>
  <build>
        <finalName>commend</finalName>
        <plugins>
         <!-- 自動生成程式碼 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
            <!--此外掛配置在編譯的時候將lib目錄下的jar包打報到target-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <forkMode>once</forkMode>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>

            </plugin>
        </plugins>
    </build>
  <build>
    <finalName>commend</finalName>
  </build>
</project>

較多的常用包

https://blog.csdn.net/yjf1248829553/article/details/78920298

Spring各個包的簡單介紹

https://www.cnblogs.com/1995hxt/p/5255210.html