Linux+eclipse+maven+tomcat7小项目实战
一、准备工作:CentOS6.5安装linux,maven,tomcat7,eclipse
二、在linux中打开eclipse,创建一个maven项目

修改web.xml

打开Navigator视图--》.settings--》org.eclipse.wst.common.project.facet.core.xml修改

配置pom.xml
<!--头部(自动生成)-->
<?xml version="1.0" encoding="UTF-8"?> <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">
<--maven项目的坐标(自动生成)--> <modelVersion>4.0.0</modelVersion> <groupId>com.service</groupId> <artifactId>manager</artifactId> <name>ManagerService</name> <packaging>war</packaging> <version>1.0.0-BUILD-SNAPSHOT</version>
<!-- 用来设置版本号 --> <properties> <java-version>1.7</java-version> <org.springframework-version>3.1.1.RELEASE</org.springframework-version> <org.aspectj-version>1.6.10</org.aspectj-version> <org.slf4j-version>1.6.6</org.slf4j-version> </properties> <!--添加插件配置,不添加会报400,404错误--> <repositories> <repository> <id>people.apache.snapshots</id> <url>http://repository.apache.org/content/groups/snapshots-group/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>apache.snapshots</id> <name>Apache Snapshots</name> <url>http://repository.apache.org/content/groups/snapshots-group/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
<!-- 用到的jar包 --> <dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework-version}</version> <exclusions> <!-- Exclude Commons Logging in favor of SLF4j --> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework-version}</version> </dependency> <!-- AspectJ --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${org.aspectj-version}</version> </dependency> <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${org.slf4j-version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${org.slf4j-version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.15</version> <exclusions> <exclusion> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> </exclusion> <exclusion> <groupId>javax.jms</groupId> <artifactId>jms</artifactId> </exclusion> <exclusion> <groupId>com.sun.jdmk</groupId> <artifactId>jmxtools</artifactId> </exclusion> <exclusion> <groupId>com.sun.jmx</groupId> <artifactId>jmxri</artifactId> </exclusion> </exclusions> <scope>runtime</scope> </dependency> <!-- @Inject --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <!-- Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</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.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- Test单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version>
<!-- 表示开发的时候引入,发布的时候不会加载此包 --> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-eclipse-plugin</artifactId> <version>2.9</version> <configuration> <additionalProjectnatures> <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> </additionalProjectnatures> <additionalBuildcommands> <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> </additionalBuildcommands> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.7</source> <target>1.7</target> <compilerArgument>-Xlint:all</compilerArgument> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>org.test.int1.Main</mainClass> </configuration> </plugin>
<!--添加tomcat7-maven-plugin插件--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <path>/${project.build.finalName}</path> <server>mytomcat7</server> <!-- 这里是本地tomcat,如果是远程服务器可以改成对应的地址,实现自动部署--> <url>http://localhost:8080/manager/text</url> </configuration> </plugin> </plugins> </build> </project>
修改下tomcat的配置文件---安装目录下的tomcat-users.xml,tomcat7.0\conf\tomcat-users.xm

<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager" /> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager,manager-script"/> </tomcat-users>
tomcat配置成功后可以在localhost:8080\manager ,tomcat的管理界面登录如下:

修改下maven的配置文件---安装目录下的settings.xml,maven\conf\settings.xml
<servers>
<server>
<id>mytomcat7</id>
<username>tomcat</username>
<password>tomcat</password>
</server>
</servers>
三、启动tomcat7,执行maven build

配置goals

点击run后部署成功
这时在tomcat的管理界面 或者 文件夹中都已经能看到这个项目了

四、常见问题
1. Failed to execute goalorg.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on projectpop-webs-server: Cannot invoke Tomcat manager:Error writing to server ->[Help 1]
2. ERROR] Failed to execute goalorg.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) onproject myproject: Cannot invoke Tomcat manager: Software caused connectionabort:socket write error -> [Help 1]
解决办法就是在pom.xml中配置tomcat-maven-plugin,在project节点下,在插件仓库(plugin repositories)和普通仓库(repositories)中添加以下仓库到pom.xml,保证maven可以从仓库中下载到tomcat-maven-plugin插件
3. Linux下Tomcat 8080 端口被占用的解决办法
一,停止tomcat 并执行 netstat -an|grep 8080 查看发现有许多80端口进程在里面
二,执行 lsof -i :8080|grep -v "PID"|awk '{print "kill -9",$2}'|sh 杀死所有80端口进程
三,启动tomcat,问题解决.
同理 80端口和其他端口也一样

浙公网安备 33010602011771号