linkin:
cargo(服务器部署):http://cargo.codehaus.org/
maven commands
描述jetty插件 :mvn help:describe -Dplugin=org.mortbay.jetty:jetty-maven-plugin -Ddetail
描述jetty:stop goal: mvn help:describe -Dcmd=jetty:stop -Ddetail
启动jetty: mvn jetty:run
默认的端口停止jetty: mvn jetty:stop -DstopPort=9999
标准的maven的web项目的布局是一个src/main/webapp目录,这里边放着所有以前构建j2ee web项目的目录webroot,(WebContent)中的一切静态文件(不包括lib和class),在执行mvn package 构建的时候,maven的war打包插件会从这个目录中抽取静态文件打包成.war文件。需要注意的是其他maven插件也会从这个标准的布局中执行他们的执行过程。比如jetty插件。
以下是自定义web应用静态文件的maven构建示例:
1.声明war的打包方式。
<packaging>war</packaging>
2.声明maven 处理资源文件的编码,和指定web.xml文件路径:(如果采用标准的maven布局,这个属性(maven.war.webxml)是不需要的)
<properties >
<!--通过此属性覆盖maven自带的多种插件的默认编码方式 -->
<project.build.sourceEncoding >utf-8</project.build.sourceEncoding>
<webapp.dir>${basedir}/WebContent</webapp.dir>
<!-- 指定webapp的web.xml文件路径 -->
<webapp.webxml>${webapp.dir}/WEB-INF/web.xml</webapp.webxml>
<jetty.webdefault.xml>${basedir}/src/test/resources/webdefault.xml</jetty.webdefault.xml>
</properties >
3.自定义war插件的配置,手动指定指定webapp的目录
<build>
<!--这个属性是用来打包成war格式的命名,会覆盖掉 maven本身带版本号的命名方式 -->
<finalName >MavenWebBuildDemo</finalName>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>extract-web-resource</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<inherited>false</inherited>
<configuration>
<warSourceDirectory>${webapp.dir}</warSourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!--- Generate Exploded War Dir -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<id>generate-exploded-war</id>
<inherited>false</inherited>
<warSourceDirectory>${webapp.dir}</warSourceDirectory>
</plugins>
</build>
4.用Jetty Plugin以disassebled方式部署应用
a.配置jetty插件
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.8.v20121106</version>
<configuration>
<webAppSourceDirectory>${webapp.dir}</webAppSourceDirectory>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<contextPath>/</contextPath>
<descriptor>${webapp.webxml}</descriptor>
<!--
解决jetty对css,javascript等的静态文件的锁定问题(工作空间更新css,javascript文件,但是没有任何效果)
详情: https://www.assembla.com/spaces/liftweb/wiki/Fix_file_locking_problem_with_jettyrun
-->
<overrideDescriptor>${jetty.webdefault.xml}</overrideDescriptor>
</webAppConfig>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
</configuration>
</plugin>
b.配置settings.xml文件,
这一步是用于简化maven运行jetty的命令。因为只有官方插件才默认支持简化的语法。一般第三方的插件需要mvn <groupId>:<artifactId>:<version>:<goalName> 这种语法。配置了之后就可以通过mvn jetty:run 这种简化的语法启动jetty
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
c.启动jetty:3
定位到项目目录,jetty:run就可以启动程序了。
d.关闭jetty:
mvn jetty:stop -DstopPort=<stop value> -DstopKey=<stop key>
5.生成site,会在${maven.build.t
a.配置site plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.2</version>
<configuration>
<!--
配置maven site插件的report插件,
由于pmd生成报告会试图调用jxr插件来生成引用交叉,
而jxr插件的调用会试图关联javaDoc所以最好3个插件
一起声明。当然pmd插件也可以单独使用。用正常的插件配置
之后mvn pmd:pmd就ok了
-->
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<targetJdk>1.6</targetJdk>
<aggregate>true</aggregate>
</configuration>
</plugin>
</reportPlugins>
</configuration>
</plugin>
b.mvn site:site
Appendix A: issue reference
Bean type class com.opensymphony.xwork2.ObjectFactory with the name xwork has already been loaded by bean jetty maven...
这种错误是由于jetty重复载入了jar包,一般出现这种问题是由于你自定义了web应用的静态文件(html, jsp, vm, js, css..)目录(默认是src/main/webapp)。这个目录的WEB-INF/lib下包含了web应用的jar包,但是maven构建的时候,它又会从local repository(本地库)中载入jar包,所以就会引起这样的冲突。这时只要删除WEB-INF/lib下的目录就好了并在eclipse中,在工程上右键->properties->deployment assembly->将deploy path一栏中的WEB-INF/lib干掉就
多模块构建
多模块构建的时候,如果直接从web子模块启动jetty,它就会报找不到父工程的错误。只要切换到父工程目录,mvn install 将父工程的pom部署到local repository就ok了
the parameters 'stopPort', 'stopKey' for goal org.mortbay.jetty:jetty-maven-plugin:8.1.8.v20121106:stop are missing or invalid
缺少stopPort,和stopPort参数来停止jetty。如果没有在配置中指定,stopPort属性,运行mvn jetty:stop -DstopPort=9999就可以了。默认的端口9999。如果配置了则需要指定相应的2个属性值。
分享到:
相关推荐
基于maven创建web项目 maven是一种基于项目对象模型(Project Object Model,POM)的项目管理工具,由Apache软件基金会开发和维护。maven提供了一种标准化的方式来构建、打包和部署项目,它可以帮助开发者简化项目...
通过学习和实践【maven web项目 Demo】,开发者能够掌握Maven的使用,从而更有效地管理Web项目,提升开发效率。同时,这也会为理解和应用其他Java Web框架,如Spring、Struts、Hibernate等奠定基础。
然而,对于习惯于使用Eclipse IDE开发Web项目的开发者来说,Maven项目可能会显得较为复杂。本文将详细介绍如何将一个Maven项目转换为Eclipse中的Web项目,并解释Maven的基本目录架构。 首先,让我们了解Maven项目的...
Maven在其中的作用是管理Java Web项目中的所有依赖,使得开发者无需手动下载和管理库文件,只需在POM.xml文件中声明依赖即可。 【压缩包子文件的文件名称列表】:WEB-INF、jsp、META-INF 这三个文件夹在Java Web...
总之,"idea创建maven web项目标准结构源码"是一个方便开发者快速上手的模板,通过理解和掌握这个结构,可以更高效地进行Java Web开发,利用Maven的便利性,以及Idea的智能编码功能,提升开发效率。
在构建Web项目时,Maven能够自动化处理构建过程,包括编译、测试、打包、部署等步骤,极大地提高了开发效率。本示例将详细介绍如何使用Maven搭建一个基础的Web项目,并解决创建过程中可能出现的报错问题。 ### 一、...
【标题】"用idea创建的maven web项目"是一个基于IntelliJ IDEA(简称idea)开发工具构建的Maven Web应用程序。Maven是Java领域的一个项目管理和构建工具,它通过提供一套规范化的项目结构和自动化的构建流程,帮助...
【标题】"mavenWeb空项目"所涉及的知识点主要...综上所述,"mavenWeb空项目"是一个包含Java Web开发基础的项目模板,利用Maven进行构建管理和单元测试,为开发者提供了一个良好的起点,便于快速开发和迭代Web应用程序。
总的来说,"mavenweb项目创建demo"是一个全面的教程,涵盖了从基础的Maven配置到Web应用的开发、构建和测试。通过学习和实践,开发者可以更好地掌握Maven在Web开发中的应用,提高项目管理的效率。在实际开发过程中,...
通过学习和实践这个项目,开发者可以深入理解Spring MVC、Hibernate和Maven的集成,提升Java Web开发能力。同时,这个项目也是进一步探索其他Java Web技术,如Spring Boot、MyBatis等的良好起点。
本人搭建的ssm框架的maven web项目,用maven管理项目的jar包,项目架构搭好,用的都是现阶段最新的jar包,日志输出用log4j,controller层/service层/bo层/dao层都整合好,测试通过,可以直接用作项目开发
总之,使用Maven构建Web项目极大地提高了开发效率,简化了依赖管理,使得开发者可以专注于编写业务代码,而无需关心构建细节。结合Tomcat这样的Web服务器,我们能够轻松地部署和运行Java Web应用。在实际开发中,...
### Intellj构建和部署Maven Web项目详解 #### 一、Maven简介与功能概述 Maven是一款项目构建和管理工具,它提供了一系列的方法帮助开发者管理构建过程、文档、报告、依赖关系、源码控制系统(SCMs)、发布流程以及...
本篇将深入探讨"Maven Web项目配置"的相关知识点。 一、Maven简介 Maven是由Apache软件基金会开发的项目管理工具,它通过一个项目对象模型(Project Object Model, POM)来管理项目,POM包含了项目的配置信息,如...
### Maven开发环境搭建详解 ...通过上述步骤,你可以成功地在Eclipse中搭建基于Maven的Java Web项目开发环境,并进行调试和服务配置。这不仅能够提高开发效率,还能够帮助开发者更好地管理项目的依赖关系。
以上就是 "Spring Boot Maven Web 完整项目框架" 的核心内容,涵盖 Spring Boot 的自动化配置、Maven 的依赖管理和构建功能,以及 Web 开发的相关知识点。通过这个项目,你可以快速搭建一个功能完善的 Web 应用,并...
本文将深入探讨如何使用Eclipse IDE创建一个Maven Web项目,并结合"Maven-web-test.zip"这个压缩包文件,理解相关知识点。 1. **Maven简介** Maven是Apache软件基金会开发的项目管理工具,它通过使用一种标准的...
"第一个eclipse maven web项目实例" 这个标题明确指出这是一个基于Eclipse集成开发环境的Maven Web项目示例。它表明我们正在处理一个使用Maven构建工具,且能直接在Eclipse中运行的Web应用程序项目。 描述中提到,...
【Maven Web项目】是基于Java的Web应用程序开发框架,它使用Maven作为构建工具,SSM框架(Spring、SpringMVC和MyBatis)作为核心组件。在本项目中,我们将深入探讨如何构建和管理一个Maven Web项目,以及SSM框架在...
【 MavenWeb 项目详解】 "MavenWeb 项目"是一个基于Maven构建的Web应用程序示例。Maven是一个强大的项目管理工具,它可以帮助开发者管理和构建Java项目,极大地简化了项目的构建、依赖管理和文档生成过程。本项目是...