maven2 + tomcat6 + eclipse集成配置

转载:http://wenku.baidu.com/view/d64147c676eeaeaad1f330d4.html?re=view

/*
maven2 + tomcat6 + eclipse集成配置
maven的配置
环境变量M2_HOME = maven主目录
环境变量path = maven主目录/bin
apache-maven/conf/setting.xml文件
1、新建maven本地仓库文件夹apache-maven2-repo,并加入setting.xml,指定本地仓库位置
<localRepository>e://apache-maven2-repo</localRepository>
2、添加<server>,注意<id>,用户密码值对应Tomcat\conf下的tomcat-users.xml的指定配置
<server>
<id>tomcat6</id>
<username>admin</username>
<password>admin</password>
</server>
eclipse中的maven配置
1、在window-preferences-maven下
-installtions,add一个外部maven,就是指定自己装的maven目录,选上,不用eclipse内置的maven
插图1
2、-user setting,指定使用刚配置的setting.xml文件
tomcat的配置
tomcat/conf/tomcat-users.xml文件
1、添加<role>,<user>
<role rolename="manager-gui"/> <!-- 注意rolename的取值,tomcat6有规定4个rolename值-->
<user username="admin" password="admin" roles="manager-gui"/>
附加rolename信息
manager-gui - allows access to the HTML GUI and the status pages
manager-script - allows access to the text interface and the status pages
manager-jmx - allows access to the JMX proxy and the status pages
manager-status - allows access to the status pages only
tomcat/conf/server.xml文件
1、修改<Connector>,启动端口8088
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding= "UTF-8"/>
新建一个Java Maven项目
1、new-project-maven project
选择all catalogs,选择org.apache.maven.archetypes/ maven-archetype-webapp
插图3
GroupId:com.maven.test
ArtifaceId:mymaven
package:com.maven.test.mymaven
插图4
新Java Maven项目创建好。
2、pom.xml的配置添加<plugins>,详细配置如下
<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.maven.test</groupId>
<artifactId>mymaven</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mymaven Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>mymaven</finalName>
<plugins>
<!-- 第一点-->
<plugin>
<!-- 第二点-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<update>true</update>
<charset>utf-8</charset>
<!-- 第三点-->
<url>http://localhost:8088/manager/text</url>
<!-- 第四点-->
<server>tomcat6</server>
<port>8088</port>
<path>/mymaven</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
第一点:
pom.xml文件是maven的核心(pom:Project Object Model),
在该文件中可以加载任何项目所需的插件。
添加tomcat-maven中间插件,以启动外部的Tomcat6服务器,
此插件可根据以下<groupId>/<artifactId>/<version>
指定配置,系统会自动将项目所需的插件jar包文件,
从maven repository center下载下来(下载到之前指定的本地apache-maven2-repo仓库中)。
系统会自动将这些项目所需的插件从 maven repository center 下载下来。
因为要希望把项目部署到外部 tomcat下面,
所以此处需要加入 tomcat-maven 插件,以及希望启动的tomcat配置<configuration>标签。
第二点:
tomcat-maven插件,可上官网参考如何写groupId and Mojo name
http://tomcat.apache.org/maven-plugin-2.0/
第三点:
官网解释:Use http://localhost:8080/manager/text rather than the default tomcat6 url
maven要利用tomcat manager,这个大致意思是指定tomcat manager的地址
若/manager/text改为/manager/html,
maven building时的信息会打印会输出一个文本格式的403网页,原因不明。
第四点:
跟setting.xml的<server>指定的<id>同名:tomcat6
3、根据pom.xml进行building
1)pom.xml右键run as -> Maven clean,开始build前清理一下
2)手工启动tomcat,双击运行tomcat/bin/startup.bat
3)pom.xml右键run as -> Maven build..,在Goals填入package tomcat6:deploy,再运行
此时项目target文件夹里生成mymaven.war,项目发布成功
插图4
4)手工关闭tomcat,双击运行tomcat/bin/shutdown.bat
5)再通过tomcat-maven插件重启tomcat,pom.xml右键run as -> Maven build..,在Goals填入tomcat6:run
6)浏览器键入http://localhost:8088/mymaven,看到index.jsp页面代表Java Maven项目实例成功了。
初次玩maven会碰到的构建错误
1、关于tomcat无法启动,提示socket bind failed端口已被占用的情况:
解决:可以打开cmd输入netstat -ano 查找端口被占用的PID,
然后到任务管理器中杀掉PID对应的进程,如无意外是直接杀掉javaw.exe即可解决
2、tomcat:deploy时的错误:
[INFO]
---------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
---------------------------------------------------------------------
[INFO] Total time: 2.797s
[INFO] Finished at: Wed Mar 13 11:24:37 CST 2013
[INFO] Final Memory: 6M/12M
[INFO]
---------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy
(default-cli) on project MyFirstMaven: Cannot invoke Tomcat manager
解决:注意指定的<url>是否正确,确定是否已经在tomcat-users.xml中正确添加了<role>/<user>
3、为什么启动的是8080端口的tomcat,而不是我们所需要的8088端口的tomcat:
解决:因为如果使用 tomcat:deploy 或 tomcat:run,maven 会自动调用的 maven 自带的
tomcat-6.0.29 插件,而不是我们所需的外部设置的 tomcat-6.0.36,那该怎么办呢?前面
在maven-setting.xml设置的时候,重点强调过,有一个配置tomcat的地方, <id>tomcat6<id>
是需要记住的,后面会用到。就是这个时候用到了,尝试在 maven build的时候,在 goals
里输入tomcat6:deploy或tomcat6:run,ok问题解决啦,外部的 tomcat6.0.36就被启动起
来了。
*/

转载于:https://www.cnblogs.com/wenlj/p/4646470.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定位pure virtual method called问题

我是在进行boost test的时候遇到了这样的一个问题&#xff0c;最后问题定位到测试用例中&#xff0c;测试的工程以及单元测试的代码是之前的&#xff0c;没有开发完&#xff0c;我实习的时候leader让我完善一下测试框架&#xff0c;添加一下测试代码。 目标机是Android&#x…

环形矩阵

1.逆时针 代码&#xff1a; 1 // huanxingjz.cpp : Defines the entry point for the console application.2 //3 4 #include "stdafx.h"5 #include <stdio.h>6 #include <iostream>7 #include "windows.h"8 #define MAX 409 using namespace …

检查MySQL主从数据一致性

未公布转载于:https://www.cnblogs.com/cuizhipeng/p/4646489.html

统计文件里有多少个字符(only a simple cpp)

通过重定向读取文件内容&#xff0c;并检测其中有多少字符&#xff0c;包括空格&#xff0c;但tap键可能统计结果不同。 #include<iostream>int main(int argc,char *argv[]){using std::cin,std::cout,std::endl;cout<<"Usage:"<<argv[0]<<…

Winsock网络编程笔记(4)----基本的理论知识

前面的笔记记录了Winsock的入门编程&#xff0c;领略了Winsock编程的乐趣。。但这并不能算是掌握了Winsock&#xff0c;加深理论知识的理解才会让后续学习更加得心应手。。因此&#xff0c;这篇笔记将记录一些有关Winsock的基本理论知识&#xff0c;由于是一篇笔记&#xff0c;…

30分钟学会使用grunt打包前端代码

http://www.cnblogs.com/yexiaochai/p/3603389.html转载于:https://www.cnblogs.com/wuxiang/p/4647280.html

简单shell:删除五日之前的日志文件

曾经在某公司面试的时候被问到了类似的问题。 假设在logs文件夹存放了许多日志文件 比如&#xff1a;20190204.log、20190205.log、20190206.log。。。 我们要删除特定日期之前的日志 在这里展示的是使用shell指令中的find指令完成操作 首先看一下find指令的命令格式&#xf…

Method Swizzle黑魔法,修改 ios 系统类库方法(转载)

一般来说&#xff0c;系统提供的方法已经足够开发了&#xff0c;但是有的时候有些需求用普通方法不好做。 如&#xff1a;在所有的viewcontroll 的viewwillappear&#xff1a;方法之前打个log 你可能会这么做&#xff1a; 1. 建一个uiviewcontroll 父类&#xff0c;重写viewwil…

win10无法开启夜间模式

在学校的时候没感觉&#xff0c;一进公司发现电脑还是需要设置一下护眼的&#xff0c;但是在设置的时候却遇到夜间模式无法开启的问题。 首先在左下角搜索设备管理器 找到显示适配器 查看显示器设备状态 如果设备图标上有黄三角感叹号则说明该设备驱动有问题&#xff0c;需要…

Linux LVM学习总结——扩展卷组VG

Linux服务器由于应用变更或需求的缘故&#xff0c;有可能出现分区空间不足的情况&#xff0c;此时往往需要进行扩容&#xff08;要增加分区的空间&#xff09;&#xff0c;而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小。如下所示&#xff0c;分区/u05…

【液晶模块系列基础视频】1.3.iM_TFT30模块简介

【液晶模块系列基础视频】1.3.iM_TFT30模块介绍 技术论坛&#xff1a;http://www.eeschool.org 博客地址&#xff1a;http://xiaomagee.cnblogs.com 官方网店&#xff1a;http://i-board.taobao.com 银杏科技 GINGKO TECH. 保留权利&#xff0c;转载请注明出处 本次教学视频介…

C++控制向文件中写入浮点数的格式

有时会遇到向文件中写入一定格式的浮点数&#xff0c;为了对齐美观&#xff0c;常常采用控制小数点后的位数并用0补齐缺少的位数的方法。 #include <iostream> #include <iomanip> #include <fstream> using namespace std;int main(){double pi3.14;ofstre…

项目管理工具到底应该为谁服务?

项目管理工具到底应该为谁服务&#xff1f;为管理者&#xff0c;还是为了团队&#xff1b;为了管理报表&#xff0c;还是为了协作需求&#xff0c;这些是在项目管理工具选择或开发时需要面对和思考的一个问题。 传统项目管理工具在团队内部臭名昭著 项目管理工具当初都是为了项…

二叉树的递归定义及存储

定义 最多有两棵子树的有序树&#xff0c;称为二叉树。二叉树是一种特殊的树。 递归定义&#xff1a;二叉树是n(n>0)个有限结点构成的集合。N0称为空二叉树&#xff1b;n>0的二叉树由一个根结点和两互不相交的&#xff0c;分别称为左子树和右子树的二叉树构成。 二叉树中…

C++统计微妙级时间消耗(chrono)

有时我们需要统计某段程序运行所消耗的时间&#xff0c;通过C的chrono库&#xff0c;我们可以轻松实现这一需求&#xff0c;例如&#xff0c;我们求斐波那契数列消耗的时间。 #include <iostream> #include <chrono> #include <iomanip> using namespace st…

content-length与Transfer-Encoding: chunked的问题释疑

content-length与Transfer-Encoding: chunked的问题释疑 http返回头中content-length与Transfer-Encoding: chunked的问题释疑 先说说问题出现的背景&#xff1a; 公司服务器与手机客户端交互&#xff0c;客户端请求一个动态生成的XML文件&#xff0c;在用firebug查看http响应头…

基于RSA的加密/解密示例C#代码

在C#程序中&#xff0c;大家可能比较熟悉的方式是md5加密解密方式&#xff0c;对RSA可能并不是很熟悉&#xff0c; 下面就说一下RSA加密和解密的算法&#xff1a;using System;using System.Security.Cryptography;using System.Text;class RSACSPSample{static void Main(){tr…

iOS GorupBy

转自&#xff1a; IOS 数组分组 Grouped NSArray 12345678NSMutableSet *set[NSMutableSet set];[_list enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {[set addObject:obj["MeasureType"]];//利用set不重复的特性,得到有多少组,根据数组中的…

android通过adb shell播放音乐

am start -n com.android.music/com.android.music.MediaPlaybackActivity -d /sdcard/timian.mp3拓展阅读 input keyevent 24 #增加音量 input keyevent 25 #降低音量 input keyevent 85 #暂停/播放 input keyevent 126 #恢复播放 input keyevent 127 #停止播放关闭音乐播放器…