一个典型的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>com.coral.test</groupId> <!--本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的--> <artifactId>test-server</artifactId> <!--打包的机制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默认为jar--> <packaging>war</packaging> <!-- 本项目目前所处的版本号 --> <version>0.0.1-SNAPSHOT</version> <name>bsm-server</name> <url>http://maven.apache.org</url> <!--为pom定义一些常量,在pom中的其它地方可以直接引用 使用方式 --> <properties> <springframework.version>4.2.5.RELEASE</springframework.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <slf4j.version>1.7.7</slf4j.version> <log4j.version>2.7</log4j.version> </properties> <dependencies> <!--一般情况下,maven是通过groupId、artifactId、version这三个元素值(俗称坐标)来检索该构件, 然后引入你的工程。如果别人想引用你现在开发的这个项目(前提是已开发完毕并发布到了远程仓库),--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <!--scope包含如下的取值:compile(编译范围)、provided(已提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围) --> <scope>test</scope> </dependency> <dependency> <groupId>com.dianping.cat</groupId> <artifactId>cat-client</artifactId> <version>1.3.6-SNAPSHOT</version> <!---- 屏蔽依赖关系--> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.2.3</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <artifactId>jdk.tools</artifactId> <groupId>*</groupId> </exclusion> <exclusion> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </exclusion> <exclusion> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </exclusion> </exclusions> </dependency> <!-- Spring相关 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${springframework.version}</version> </dependency> <!-- MySQL相关 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- Servlet相关 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <scope>provided</scope> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <scope>provided</scope> <version>2.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <!-- elasticsearch相关 --> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.3.2</version> </dependency> </dependencies> <build> <!-- 产生的构件的文件名,默认值是${artifactId}-${version}。 --> <finalName>bsm-server</finalName> <!-- 构建产生的所有文件存放的目录,默认为${basedir}/target,即项目根目录下的target --> <directory>${basedir}/target</directory> <!--使用的插件列表 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <contextPath>/${project.name}</contextPath> <defaultsDescriptor>src/main/webapp/WEB-INF/web.xml</defaultsDescriptor> <connectors> <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> <port>8080</port> <maxIdleTime>500000</maxIdleTime> </connector> </connectors> <systemProperties> <systemProperty> <name>catalina.home</name> <value>${basedir}/src/main</value> </systemProperty> <systemProperty> <name>MAVEN_OPTS</name> <value>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</value> </systemProperty> </systemProperties> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <verbose>true</verbose> <fork>true</fork> <source>1.8</source> <target>1.8</target> <compilerVersion>1.8</compilerVersion> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>
使用其他的jetty插件配置:
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.8.v20150217</version> <configuration> <httpConnector> <port>8080</port> </httpConnector> <stopKey>shutdown</stopKey> <stopPort>9966</stopPort> <!-- <scanIntervalSeconds>2</scanIntervalSeconds> --> <reload>manual</reload> <dumpOnStart>true</dumpOnStart> <webApp> <contextPath>/${project.artifactId}</contextPath> <!-- <resourceBases> <resourceBase>${project.basedir}/src/main/webapp</resourceBase> <resourceBase>${project.basedir}/commons</resourceBase> </resourceBases> --> </webApp> <requestLog implementation="org.eclipse.jetty.server.NCSARequestLog"> <filename>target/access-yyyy_mm_dd.log</filename> <filenameDateFormat>yyyy_MM_dd</filenameDateFormat> <logDateFormat>yyyy-MM-dd HH:mm:ss</logDateFormat> <logTimeZone>GMT+8:00</logTimeZone> <append>true</append> <logServer>true</logServer> <retainDays>120</retainDays> <logCookies>true</logCookies> </requestLog> </configuration> </plugin> </plugins>(未完待续,欢迎交流)