Coder Social home page Coder Social logo

project's Introduction

project

学习总结

pom.xml 文件基本配置

4.0.0 com.kuguo kuguo-front 1.0-SNAPSHOT war kuguo-front
<properties>
	<!-- 主要依赖库的版本定义 -->
	<springside.version>4.0.1.GA</springside.version>
	<spring.version>3.1.3.RELEASE</spring.version>
	<spring-data-jpa.version>1.2.0.RELEASE</spring-data-jpa.version>
	<commons-dbcp.version>1.4</commons-dbcp.version>
	<sitemesh.version>2.4.2</sitemesh.version>
	<shiro.version>1.2.1</shiro.version>
	<hibernate-validator.version>4.3.0.Final</hibernate-validator.version>
	<jackson.version>2.1.2</jackson.version>
	<slf4j.version>1.7.2</slf4j.version>
	<log4j.version>1.2.17</log4j.version>
	<commons-lang3.version>3.1</commons-lang3.version>
	<guava.version>13.0.1</guava.version>
	<joda-time.version>2.1</joda-time.version>
	<junit.version>4.11</junit.version>
	<mockito.version>1.9.5</mockito.version>
	<selenium.version>2.28.0</selenium.version>
	<jetty.version>7.6.8.v20121106</jetty.version>
	<h2.version>1.3.170</h2.version>
	<hibernate.version>4.1.8.Final</hibernate.version>
	<mybatis.version>3.1.1</mybatis.version>

	<!-- Plugin的属性定义 -->
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<jdk.version>1.6</jdk.version>

	<!-- 项目属性 -->
	<jdbc.driver.groupId>mysql</jdbc.driver.groupId>
	<jdbc.driver.artifactId>mysql-connector-java</jdbc.driver.artifactId>
	<jdbc.driver.version>5.1.21</jdbc.driver.version>
</properties>

<repositories>
	<repository>
		<id>central</id>
		<name>Central Repository</name>
		<url>http://repo.maven.apache.org/maven2</url>	
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>
	<repository>
		<id>googlecode</id>
		<name>googlecode Central Repository</name>
		<url>https://kuguo-repo.googlecode.com/svn/trunk/release</url>	
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>
</repositories>

<!-- 依赖项定义 -->
<dependencies>
	<!-- AOP begin -->
	<dependency>
		<groupId>org.aspectj</groupId>
		<artifactId>aspectjrt</artifactId>
		<version>1.7.1</version>
	</dependency>
	<dependency>
		<groupId>org.aspectj</groupId>
		<artifactId>aspectjweaver</artifactId>
		<version>1.7.1</version>
	</dependency>		
	<dependency>
		<groupId>cglib</groupId>
		<artifactId>cglib</artifactId>
		<version>2.2.2</version>
		<scope>runtime</scope>
	</dependency>
	<dependency>
		<groupId>asm</groupId>
		<artifactId>asm</artifactId>
		<version>3.3.1</version>
		<scope>runtime</scope>
	</dependency>
	<!-- AOP end -->

	<!-- PERSISTENCE begin -->
	<!-- hibernate -->
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-entitymanager</artifactId>
		<version>${hibernate.version}</version>
	</dependency>
	
	<!-- mybatis -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>${mybatis.version}</version>
	</dependency>
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis-spring</artifactId>
		<version>1.1.1</version>
	</dependency>
	
	<!-- spring data access -->
	<dependency>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-jpa</artifactId>
		<version>${spring-data-jpa.version}</version>
		<exclusions>
			<exclusion>
				<groupId>junit</groupId>
				<artifactId>junit-dep</artifactId>
			</exclusion>
		</exclusions>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-orm</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>${spring.version}</version>
	</dependency>

	<!-- dbcp connection pool -->
	<dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
		<version>${commons-dbcp.version}</version>
		<scope>runtime</scope>
	</dependency>

	<!-- jdbc driver -->
	<dependency>
		<groupId>${jdbc.driver.groupId}</groupId>
		<artifactId>${jdbc.driver.artifactId}</artifactId>
		<version>${jdbc.driver.version}</version>
		<scope>runtime</scope>
	</dependency>
	<!-- PERSISTENCE end -->

	<!-- WEB begin -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${spring.version}</version>
	</dependency>
	
	<dependency>
		<groupId>opensymphony</groupId>
		<artifactId>sitemesh</artifactId>
		<version>${sitemesh.version}</version>
		<scope>runtime</scope>
	</dependency>

	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>

	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
		<scope>provided</scope>
	</dependency>
	<!-- WEB end -->
	
	<!-- SECURITY begin -->
	<dependency>
		<groupId>org.apache.shiro</groupId>
		<artifactId>shiro-spring</artifactId>
		<version>${shiro.version}</version>
	</dependency>
	<dependency>
		<groupId>org.apache.shiro</groupId>
		<artifactId>shiro-ehcache</artifactId>
		<version>${shiro.version}</version>
	</dependency>
	<dependency>
		<groupId>commons-codec</groupId>
		<artifactId>commons-codec</artifactId>
		<version>1.7</version>
	</dependency>
	<!-- SECURITY end -->
	
	<!-- JSR303  BeanValidator -->
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-validator</artifactId>
		<version>${hibernate-validator.version}</version>
	</dependency>
	
	<!-- JSON begin -->
	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-databind</artifactId>
		<version>${jackson.version}</version>
	</dependency>
	<dependency>
		<groupId>com.fasterxml.jackson.module</groupId>
		<artifactId>jackson-module-jaxb-annotations</artifactId>
		<version>${jackson.version}</version>
	</dependency>
	<!-- JSON end -->
	
	<!-- LOGGING begin -->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-api</artifactId>
		<version>${slf4j.version}</version>
	</dependency>
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>${slf4j.version}</version>
		<scope>runtime</scope>
	</dependency>
	<!-- common-logging 实际调用slf4j -->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>jcl-over-slf4j</artifactId>
		<version>${slf4j.version}</version>
		<scope>runtime</scope>
	</dependency>
	<!-- java.util.logging 实际调用slf4j -->
	<dependency>
        	<groupId>org.slf4j</groupId>
        	<artifactId>jul-to-slf4j</artifactId>
        	<version>${slf4j.version}</version>
        	<scope>runtime</scope>
      	</dependency>
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>${log4j.version}</version>
	</dependency>
	<dependency>
		<groupId>org.lazyluke</groupId>
		<artifactId>log4jdbc-remix</artifactId>
		<version>0.2.7</version>
		<scope>runtime</scope>
	</dependency>
	<!-- LOGGING end -->

	<!-- GENERAL UTILS begin -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
		<version>${commons-lang3.version}</version>
	</dependency>
	<dependency>
		<groupId>com.google.guava</groupId>
		<artifactId>guava</artifactId>
		<version>${guava.version}</version>
	</dependency>
	<!-- GENERAL UTILS end -->
	
	<!-- Taobao API begin -->
	<dependency>
		<groupId>com.taobao</groupId>
		<artifactId>taobao-api</artifactId>
		<version>1.0</version>
	</dependency>
	<!-- Taobao API end-->

	<!-- TEST begin -->
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>${junit.version}</version>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>org.mockito</groupId>
		<artifactId>mockito-core</artifactId>
		<version>${mockito.version}</version>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
		<version>${spring.version}</version>
		<scope>test</scope>
	</dependency>

	<!-- selenium 2.0 -->
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-java</artifactId>
		<version>${selenium.version}</version>
		<scope>test</scope>
		<exclusions>
			<exclusion>
				<groupId>org.seleniumhq.selenium</groupId>
				<artifactId>selenium-android-driver</artifactId>
			</exclusion>
			<exclusion>
				<groupId>org.seleniumhq.selenium</groupId>
				<artifactId>selenium-iphone-driver</artifactId>
			</exclusion>
			<exclusion>
				<groupId>commons-logging</groupId>
				<artifactId>commons-logging</artifactId>
			</exclusion>
		</exclusions>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-remote-driver</artifactId>
		<version>${selenium.version}</version>
		<scope>test</scope>
		<exclusions>
			<exclusion>
				<groupId>cglib</groupId>
				<artifactId>cglib-nodep</artifactId>
			</exclusion>
			<exclusion>
				<groupId>commons-logging</groupId>
				<artifactId>commons-logging</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

	<!-- h2 -->
	<dependency>
		<groupId>com.h2database</groupId>
		<artifactId>h2</artifactId>
		<version>${h2.version}</version>
		<scope>test</scope>
	</dependency>

	<!-- jetty -->
	<dependency>
		<groupId>org.eclipse.jetty.aggregate</groupId>
		<artifactId>jetty-webapp</artifactId>
		<version>${jetty.version}</version>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.eclipse.jetty</groupId>
		<artifactId>jetty-jsp</artifactId>
		<version>${jetty.version}</version>
		<scope>test</scope>
	</dependency>
	<!-- TEST end -->
</dependencies>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
		<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>				
	</dependencies>
</dependencyManagement>

<build>
	<plugins>
		<!-- compiler插件, 设定JDK版本 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.0</version>
			<configuration>
				<source>${jdk.version}</source>
				<target>${jdk.version}</target>
				<showWarnings>true</showWarnings>
			</configuration>
		</plugin>

		<!-- war打包插件, 设定war包名称不带版本号 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-war-plugin</artifactId>
			<version>2.3</version>
			<configuration>
				<warName>${project.artifactId}</warName>
			</configuration>
		</plugin>

		<!-- test插件, 仅测试名称为*Test的类,使用支持分组测试的surefire-junit47 driver -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<version>2.12.4</version>
			<configuration>
				<includes>
					<include>**/*Test.java</include>
				</includes>
				<argLine>-Xmx256M</argLine>
			</configuration>
			<dependencies>
				<dependency>
					<groupId>org.apache.maven.surefire</groupId>
					<artifactId>surefire-junit47</artifactId>
					<version>2.12.4</version>
				</dependency>
			</dependencies>
		</plugin>

		<!-- 增加functional test的Source目录 -->
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>build-helper-maven-plugin</artifactId>
			<version>1.7</version>
			<executions>
				<execution>
					<id>add-functional-source</id>
					<phase>generate-sources</phase>
					<goals>
						<goal>add-test-source</goal>
					</goals>
					<configuration>
						<sources>
							<source>src/test/functional</source>
						</sources>
					</configuration>
				</execution>
			</executions>
		</plugin>

		<!-- cobertura插件, 设置不需要计算覆盖率的类 -->
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>cobertura-maven-plugin</artifactId>
			<version>2.5.1</version>
			<configuration>
				<instrumentation>
					<excludes>
						<exclude>**/entity/**/*.class</exclude>
						<exclude>**/*Controller.class</exclude>
					</excludes>
				</instrumentation>
			</configuration>
		</plugin>

		<!-- eclipse插件, 设定wtp版本 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-eclipse-plugin</artifactId>
			<version>2.9</version>
			<configuration>
				<downloadSources>true</downloadSources>
				<downloadJavadocs>false</downloadJavadocs>
				<wtpversion>2.0</wtpversion>
				<!-- 增加设置项目encoding的文件 -->
				<additionalConfig>
					<file>
						<name>.settings/org.eclipse.core.resources.prefs</name>
						<content>eclipse.preferences.version=1${line.separator}encoding/&lt;project&gt;=${project.build.sourceEncoding}${line.separator}</content>
					</file>
				</additionalConfig>
			</configuration>
		</plugin>
		
		<!-- enforcer插件, 设定环境与依赖的规则 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-enforcer-plugin</artifactId>
			<version>1.2</version>
			<executions>
				<execution>
					<id>enforce-banned-dependencies</id>
					<goals>
						<goal>enforce</goal>
					</goals>
					<configuration>
						<rules>
							<requireMavenVersion>
              					<version>3.0.3</version>
            				</requireMavenVersion>
            				<requireJavaVersion>
              					<version>1.6</version>
            				</requireJavaVersion>
							<bannedDependencies>
								<searchTransitive>true</searchTransitive>
								<!-- 避免引入过期的jar包 -->
								<excludes>
									<exclude>commons-logging</exclude>
									<exclude>aspectj:aspectj*</exclude>
									<exclude>org.springframework:2.*</exclude>
									<exclude>org.springframework:3.0.*</exclude>
								</excludes>
							</bannedDependencies>
						</rules>
						<fail>true</fail>
					</configuration>
				</execution>
			</executions>
		</plugin>
		
		<!-- jetty插件, 设定context path与spring profile -->
		<plugin>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty-maven-plugin</artifactId>
			<version>${jetty.version}</version>
			<configuration>
				<systemProperties>
					<systemProperty>
						<name>spring.profiles.active</name>
						<value>development</value>
					</systemProperty>
				</systemProperties>
				<useTestClasspath>true</useTestClasspath>
			
				<webAppConfig>
					<contextPath>/${project.artifactId}</contextPath>
				</webAppConfig>
			</configuration>
		</plugin>

		<!-- resource插件 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-resources-plugin</artifactId>
			<version>2.6</version>
		</plugin>
		
		<!-- install插件 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-install-plugin</artifactId>
			<version>2.4</version>
		</plugin>

		<!-- clean插件 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-clean-plugin</artifactId>
			<version>2.5</version>
		</plugin>
		
		<!-- ant插件 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-antrun-plugin</artifactId>
			<version>1.7</version>
		</plugin>
		
		<!-- dependency插件 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-dependency-plugin</artifactId>
			<version>2.6</version>
		</plugin>
	</plugins>
</build>

<profiles>
	<!-- 执行functional test -->
	<profile>
		<id>functional-test</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>
						<argLine>-Xmx256M -XX:MaxPermSize=128m</argLine>
						<includes>
							<include>**/*FT.java</include>
						</includes>
						<!-- 支持taglib tld文件查找的必要设置 -->
						<useSystemClassLoader>false</useSystemClassLoader>
						<!-- 将mvn命令行传入的selenium driver参数传入surefire的JVM -->
						<systemPropertyVariables>
							<selenium.driver>${selenium.driver}</selenium.driver>
						</systemPropertyVariables>
					</configuration>
				</plugin>
			</plugins>
		</build>
	</profile>
	
	<!-- 执行@Category(Smoke.class)的TestCase -->
	<profile>
		<id>run-smoke</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>
						<includedGroups>org.springside.modules.test.category.Smoke</includedGroups>
					</configuration>
				</plugin>				
			</plugins>
		</build>
	</profile>
	
	<!-- 忽略所有@Category(UnStable.class)的TestCase -->
	<profile>
		<id>skip-unstable</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>
						<excludedGroups>org.springside.modules.test.category.UnStable</excludedGroups>
					</configuration>
				</plugin>				
			</plugins>
		</build>
	</profile>
	
	<!-- 刷新开发环境数据库 -->
	<profile>
		<id>refresh-db</id>
		<build>

			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-antrun-plugin</artifactId>
					<configuration>
						<target>
							<property file="src/main/resources/application.development.properties" />
							<property file="src/main/resources/application.properties" />
							<sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}" onerror="continue" encoding="${project.build.sourceEncoding}">
								<classpath refid="maven.test.classpath" />
								<transaction src="src/main/resources/sql/h2/schema.sql" />
								<transaction src="src/test/resources/data/import-data.sql" />
							</sql>
						</target>
					</configuration>
				</plugin>
			</plugins>
		</build>
	</profile>
</profiles>

project's People

Contributors

jerrylrj avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.