设为首页 收藏本站
查看: 1315|回复: 0

[经验分享] Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

[复制链接]

尚未签到

发表于 2017-3-2 07:26:52 | 显示全部楼层 |阅读模式
  现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可以部署在Jetty服务器上,以下是调试过程。

一.开发环境
  Java: JDK7
  Eclipse: Eclipse Java EE IDE for Web Developers ,Version:Luna Release (4.4.0)
  Maven: 3.2.5
  Tomcat: 7

二. 配置Tomcat用户
  Tomcat7和8的配置用户权限是一样的,更多可以参考官方文档(http://tomcat.apache.org/)的说明。此外配置独立服务器还要修改Tomcat的tomcat-user.xml文件,把用户权限加进去。



<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user password="admin" roles="manager-gui,admin-gui,manager-script" username="admin"/>
  其中manager-gui和admin-gui是Tomcat的管理界面,manager-script指的就是maven插件可以访问的用户权限规则

三. 在pom.xml文件中添加Tomcat插件
  Tomcat7可以参考在官方文档(http://tomcat.apache.org/maven-plugin-2.2/)中关于maven插件的配置。



1 <build>
2         
3         <pluginManagement>
4             <plugins>
5                 <plugin>
6                     <groupId>org.apache.maven.plugins</groupId>
7                     <artifactId>maven-war-plugin</artifactId>
8                     <version>2.1.1</version>
9                     <configuration>
10                         <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
11                     </configuration>
12                 </plugin>
13
14                 <plugin>
15                     <groupId>org.apache.tomcat.maven</groupId>
16                     <artifactId>tomcat7-maven-plugin</artifactId>
17                     <version>2.2</version>
18                     <configuration>
19                         <url>http://localhost:8080/xpxiaowuApp/</url>
20                         <username>admin</username>
21                         <password>admin</password>
22                     </configuration>
23                 </plugin>
24                 
25             </plugins>
26         </pluginManagement>
27
28     </build>
  在第19行,Web App在Tomcat中的部署地址。
  三.运行Tomcat7的Maven插件
  以上步骤配置好后,在命令行输入命令:



mvn tomcat7:run
  如果一切顺利,会出现一下提示。



D:\workspace_maven>mvn tomcat7:run
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building xpxiaowuApp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ xpxiao
wuApp >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ xpxiaowuAp
p ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e
. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ xpxiaowuApp ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] <<< tomcat7-maven-plugin:2.2:run (default-cli) < process-classes @ xpxiaowuApp <<<
[INFO]
[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ xpxiaowuApp ---
[INFO] Running war on http://localhost:8080/xpxiaowuApp
[INFO] Using existing Tomcat server configuration at D:\workspace_maven\target\tomcat
[INFO] create webapp with contextPath: /xpxiaowuApp
五月 27, 2015 9:17:12 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
五月 27, 2015 9:17:12 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
五月 27, 2015 9:17:12 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
五月 27, 2015 9:17:13 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
  在浏览器中输入 http://localhost:8080/xpxiaowuApp/ ,可以看到欢迎页面。
DSC0000.png

  注意: 实验证明以上步骤在Tomcat8中同样配置成功。

四. 在pom.xml文件中添加Jetty6插件
  1 Jetty可以参考官方文档( http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html)



1 <plugin>
2   <groupId>org.eclipse.jetty</groupId>
3   <artifactId>jetty-maven-plugin</artifactId>
4  
5 </plugin>
  以上步骤配置好后,在命令行输入命令:



mvn jetty:run
  在浏览器输入 http://127.0.0.1:8080/xpxiaowuApp/index.html 就可以访问项目了。
  2 设置(修改)jetty(maven插件maven-jetty-plugi)的端口 ,例如下面的配置文档。



<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.xinping</groupId>
<artifactId>TestWeb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<!-- 为整个项目统一指定字符集 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<!-- 打包的war名称设置 -->
<finalName>TestWeb</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>        
<configuration>               
<scanIntervalSeconds>3</scanIntervalSeconds>  
<connectors>  
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
<port>8080</port>  
</connector>  
</connectors>                     
</configuration>              
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
  注意:maven集成jetty插件后会出现问题
  1  现象
运行 mvn jetty:run 以后,发现静态资源文件修改后无法保存,IDE 提示 “请求的操作无法在使用用户映射区域打开的文件上执行”。
  2 解决方案:
  版本:jetty 6.1.22
  找到 .m2\repository\org\mortbay\jetty\jetty\6.1.22 修改 jetty-6.1.22.jar 中 org/mortbay/jetty/webapp/webdefault.xml 文件
  修改



<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>true</param-value>
</init-param>
  为



<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
  然后放到 maven工程的 src/main/resources下,修改配置文件:



    <build>
<finalName>javaWebPro</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>        
<configuration>               
<scanIntervalSeconds>3</scanIntervalSeconds>  
<connectors>  
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
<port>8080</port>  
</connector>  
</connectors>                     
<webAppConfig>  
<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
</webAppConfig>   
</configuration>              
</plugin>
</plugins>
</pluginManagement>
</build>
五 在Eclipse运行Maven命令
  在 Eclipse中点击Maven的Web项目,右键选择Run As => Maven Build
DSC0001.png

  在配置窗口中Goals列中填写Maven命令:jetty:run , 保存配置,然后运行这个配置。
DSC0002.png

  此时查看Eclipse的console控制台,会给出以下提示信息:
DSC0003.png


六 配置插件仓库



<!-- 配置插件仓库 -->
    <repositories>
         <!-- restlet 插件仓库 -->
     <repository>
            <id>maven-restlet</id>
            <name>Public online Restlet repository</name>
            <url>http://maven.restlet.org</url>
        </repository>
       <repository>
            <id>maven2-repository.java.net</id>
            <name>Java.net Repository for Maven</name>
            <url>http://download.java.net/maven/2/</url>
        </repository>
        <repository>
            <id>oschina Releases</id>
            <name>oschina Releases</name>
            <url>http://maven.oschina.net/content/groups/public</url>
        </repository>
        <repository>
            <id>nexus-osc</id>
            <name>Nexus osc</name>
            <url>http://maven.oschina.net/content/groups/public/</url>
        </repository>
        <repository>
            <id>nexus-osc-thirdparty</id>
            <name>thirdparty</name>
            <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
        </repository>
        <!-- jesery插件仓库 -->
        <repository>
            <id>snapshot-repository.java.net</id>
            <name>Java.net Snapshot Repository for Maven</name>
            <url>https://maven.java.net/content/repositories/snapshots/</url>
            <layout>default</layout>
        </repository>
    </repositories>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348976-1-1.html 上篇帖子: 在cmd命令行使用Maven Archetype插件 generate命令创建简单的java web项目 下篇帖子: linux下java.io.IOException: Cannot run program "/opt/jdk/jre/bin/java": error=13,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表