pom.xml常用的包及實用的幾個外掛
阿新 • • 發佈:2019-02-02
<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>