到新公司负责一个行业线的产品化工作,打算使用maven管理产品。期间的痛苦难以言表。经过2天的打拼终于解决。
本文本着最大复用原则已经有前辈写完的就不重复了。
参考资料:http://b-l-east.iteye.com/blog/1246482
归纳步骤:
1.下载maven最新版本本文使用apache-maven-3.2.1,配置环境变量Path追加%MAVEN_HOME%\bin。%MAVEN_HOME%为maven保存地址。
2.使用命令构建maven工程和pom.xml。
命令:mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
3.使用命令将工程构建为eclipse工程。命令: mvn eclipse:eclipse
4.导入工程myeclipse8.6自带maven工具
5.配置myeclipse8.6的src路径
6.下载依赖包,请注意如果依赖包无法找到请使用第三方依赖包写法。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>src\main\webapp\WEB-INF\lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
7.开发代码
8.注意Myeclipse8.6会自动编译代码,与maven打包代码大小可能会存在不同需要注意。建议最后发布时使用mvn打包。
9.常用命令
mvn clean 清除所有target文件
mvn compile 编译所有src文件
mvn test 执行测试脚本
mvn package 打包程序
mvn tomcat6:deploy 部署到远程服务
10.远程部署
详细内容请见:http://www.cnblogs.com/yuandingjiema/archive/2012/12/23/2829818.html
本人使用的是tomcat6需要注意几个地方
tomcat6配置权限位置 conf/tomcat-users.xml文件,添加内容如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx"/>
<user username="manager" password="manager" roles="manager-gui,manager-script,manager-jmx"/>
</tomcat-users>
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xjd</groupId>
<artifactId>springmvc</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>springmvc-1.0.0</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.2.0.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
<version>5.0-1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2_04</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>1.2_04</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
</dependencies>
<build>
<finalName>springmvc</finalName>
<plugins>
<plugin>
<!-- 设置javac编译器的版本和编码字符 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>utf8</encoding><!-- 编译器编码 -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<username>admin</username>
<password>admin</password>
<url>http://localhost:8080/manager/html</url>
</configuration>
</plugin>
</plugins>
</build>
</project>
最后切记,使用命令是mvn tomcat6:deploy
如果部署错误会出现问题:
401/403基本都是tomcat权限问题,权限问题分两个方面
一个是tomcat6权限没有设置tomcat-users.xml
一个是输入命令错误,我一共输入错误两次(错误命令:mvn tomcat:deploy和mvn tocmat:deploy)搞了很长时间。