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.pswp.cn/news/375739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375739.shtml
英文地址,請注明出處:http://en.pswp.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 #停止播放關閉音樂播放器…