- 浏览: 3424958 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
Maven命令行来创建项目 http://everlook.iteye.com/blog/1446672
Maven最佳实践:划分模块 http://blog.csdn.net/yydcj/article/details/8698222
如果碰到问题,或者觉得不详细,可以参考
http://blog.csdn.net/yydcj/article/details/8699633
一些命令说明:
直接创建maven web项目
mvn archetype:create -DgroupId=cn.everlook.myweb -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp
说明:archetypeArtifactId(项目骨架的类型)
* maven-archetype-archetype
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple
* maven-archetype-webapp
然后进入myweb目录,执行mvn eclipse:eclipse -Dwtpversion=2.0,这就可以用wtp插件发布了。
根据原文,我得到自己的操作:
环境: Maven 3.0.x, OS: Fedora17
1.创建父工程,并配置
mvn archetype:create -DgroupId=com.pandy.p -DartifactId=PandyTest -DarchetypeArtifactId=maven-archetype-quickstart
cd PandyTest
rm -rf src
修改pom.xml里面的packaging为pom;
设定父工程的编译等级:
2.创建子工程,并做相应配置
mvn archetype:create -DgroupId=com.pandy.p -DartifactId=PandyC1 -DarchetypeArtifactId=maven-archetype-quickstart
mvn archetype:create -DgroupId=com.pandy.p -DartifactId=PandyC2 -DarchetypeArtifactId=maven-archetype-webapp
Web模块设定对C1工程的依赖:
Web模块设定插件,eclipse插件,jetty插件,注意<finalName>PandyC2</finalName>和
3.针对eclipse处理
退回到父目录:mvn eclipse:eclipse , 或者: mvn eclipse:eclipse -Dwtpversion=2.0
别人的命令:mvn eclipse:eclipse -Dwtpversion=1.0
记得不要缺少 -Dwtpversion=1.0,这个说明了eclipse认出它就是web项目,而不是简单的java项目,大家应该知道web项目在eclipse可以做一些其他的事情吧。
修改Webapp工程的.classpath文件,增加:这个很重要
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
否则,导入之后,创建java的代码,总是在eclipse上位置现实不对。
倒入到eclipse, 导入的时候选择Maven已存在项目,选择父工程的根目录。
会看见导入三个工程,其中子工程有错误,点击错误右键,快速修复(Quick Fix),即可解决问题
如果要在eclipse中使用m2eclipse,需要使用:
mvn eclipse:m2eclipse
4. 编译过程:
到父工程右键--运行方式--Maven clean , Maven install。
这个过程
A: 自动会编译子模块C1,并打包成jar,
B: 自动会编译子模块C2,并打包成war, 并把C1生成的jar放到C2.war下面去。
5. eclipse运行webapp工程:
因为C2是Webapp的工程,所以必须跑到C2下面执行: jetty:run
问题:如何实时调试C1的java代码?
Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署 http://blog.csdn.net/laoshuisheng/article/details/6420003
多模块Maven环境下,如何在eclipse构建J2EE调试环境(热替换)http://www.cnblogs.com/hsiayong/archive/2012/06/25/2561185.html
关于部署,可以参考:http://panyongzheng.iteye.com/blog/1866757
其他:
按照上面的带的三个pom.xml大概如下:
父pom.xml
非Webapp的子Module pom.xml
Webapp的子Module pom.xml
其实,两个子Module的pom.xml可以去掉
<groupId>com.pandy.p</groupId>,<version>1.0-SNAPSHOT</version>
因为他们自己的pom.xml里面的parent节点,已经定义了。
Maven最佳实践:划分模块 http://blog.csdn.net/yydcj/article/details/8698222
如果碰到问题,或者觉得不详细,可以参考
http://blog.csdn.net/yydcj/article/details/8699633
一些命令说明:
直接创建maven web项目
mvn archetype:create -DgroupId=cn.everlook.myweb -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp
说明:archetypeArtifactId(项目骨架的类型)
* maven-archetype-archetype
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple
* maven-archetype-webapp
然后进入myweb目录,执行mvn eclipse:eclipse -Dwtpversion=2.0,这就可以用wtp插件发布了。
根据原文,我得到自己的操作:
环境: Maven 3.0.x, OS: Fedora17
1.创建父工程,并配置
mvn archetype:create -DgroupId=com.pandy.p -DartifactId=PandyTest -DarchetypeArtifactId=maven-archetype-quickstart
cd PandyTest
rm -rf src
修改pom.xml里面的packaging为pom;
设定父工程的编译等级:
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
2.创建子工程,并做相应配置
mvn archetype:create -DgroupId=com.pandy.p -DartifactId=PandyC1 -DarchetypeArtifactId=maven-archetype-quickstart
mvn archetype:create -DgroupId=com.pandy.p -DartifactId=PandyC2 -DarchetypeArtifactId=maven-archetype-webapp
Web模块设定对C1工程的依赖:
<dependency> <groupId>com.pandy.p</groupId> <artifactId>PandyC1</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
Web模块设定插件,eclipse插件,jetty插件,注意<finalName>PandyC2</finalName>和
<contextPath>/PandyC2</contextPath>节点: <build> <finalName>PandyC2</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <wtpmanifest>true</wtpmanifest> <wtpapplicationxml>true</wtpapplicationxml> <wtpversion>2.0</wtpversion> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <archive> <manifest> <!--<addClasspath>true</addClasspath> --> </manifest> <manifestEntries> <Built-By>org-builder</Built-By> <Build-Jdk>${java.version}</Build-Jdk> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.20</version> <configuration> <contextPath>/PandyC2</contextPath> <!--<webDefaultXml>webdefault.xml</webDefaultXml> --> <scanIntervalSeconds>0</scanIntervalSeconds> <scanTargetPatterns> <scanTargetPattern> <directory>src/main/webapp/WEB-INF</directory> <excludes> <exclude>**/*.jsp</exclude> </excludes> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </scanTargetPattern> </scanTargetPatterns> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.0.2</version> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> <manifestEntries> <Implementation-Build>${buildNumber}</Implementation-Build> </manifestEntries> </archive> <dependentWarExcludes> **/jdbc.properties,**/web.xml,WEB-INF/classes/META-INF/** </dependentWarExcludes> </configuration> </plugin> </plugins> </build>
3.针对eclipse处理
退回到父目录:mvn eclipse:eclipse , 或者: mvn eclipse:eclipse -Dwtpversion=2.0
别人的命令:mvn eclipse:eclipse -Dwtpversion=1.0
记得不要缺少 -Dwtpversion=1.0,这个说明了eclipse认出它就是web项目,而不是简单的java项目,大家应该知道web项目在eclipse可以做一些其他的事情吧。
修改Webapp工程的.classpath文件,增加:这个很重要
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
否则,导入之后,创建java的代码,总是在eclipse上位置现实不对。
倒入到eclipse, 导入的时候选择Maven已存在项目,选择父工程的根目录。
会看见导入三个工程,其中子工程有错误,点击错误右键,快速修复(Quick Fix),即可解决问题
如果要在eclipse中使用m2eclipse,需要使用:
mvn eclipse:m2eclipse
4. 编译过程:
到父工程右键--运行方式--Maven clean , Maven install。
这个过程
A: 自动会编译子模块C1,并打包成jar,
B: 自动会编译子模块C2,并打包成war, 并把C1生成的jar放到C2.war下面去。
5. eclipse运行webapp工程:
因为C2是Webapp的工程,所以必须跑到C2下面执行: jetty:run
问题:如何实时调试C1的java代码?
Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署 http://blog.csdn.net/laoshuisheng/article/details/6420003
多模块Maven环境下,如何在eclipse构建J2EE调试环境(热替换)http://www.cnblogs.com/hsiayong/archive/2012/06/25/2561185.html
关于部署,可以参考:http://panyongzheng.iteye.com/blog/1866757
其他:
按照上面的带的三个pom.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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.pandy.p</groupId> <artifactId>PandyTest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>PandyTest</name> <url>http://maven.apache.org</url> .......... <modules> <module>PandyC1</module> <module>PandyC2</module> </modules> </project>
非Webapp的子Module pom.xml
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.pandy.p</groupId> <artifactId>PandyTest</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.pandy.p</groupId> <artifactId>PandyC1</artifactId> <version>1.0-SNAPSHOT</version> <name>PandyC1</name> <url>http://maven.apache.org</url> ..... ..... </project>
Webapp的子Module pom.xml
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.pandy.p</groupId> <artifactId>PandyTest</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.pandy.p</groupId> <artifactId>PandyC2</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>PandyC2 Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> ...... <dependency> <groupId>com.pandy.p</groupId> <artifactId>PandyC1</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <build> <finalName>PandyC2</finalName> ...... </build> </project>
其实,两个子Module的pom.xml可以去掉
<groupId>com.pandy.p</groupId>,<version>1.0-SNAPSHOT</version>
因为他们自己的pom.xml里面的parent节点,已经定义了。
发表评论
-
利用MAVEN打包时,如何包含更多的资源文件
2015-11-16 16:06 1489http://bglmmz.iteye.com/blog/20 ... -
用ant启动和关闭tomcat
2015-09-02 10:52 1383http://blog.csdn.net/youjianbo_ ... -
Maven plugin中的lifecycle、phase、goal、mojo概念及作用的理解
2015-07-28 10:57 985http://gavin-chen.iteye.com/blo ... -
intellij idea 热部署 spring jvm, JRebel
2015-05-19 20:28 2030springloaded intellij idea 热部署 ... -
maven发布jar到本地和服务器命令
2015-05-17 15:03 1120发布到本地库 mvn install:install-file ... -
ANT和build.xml模板和介绍
2015-05-04 14:19 2474ant 脚本里面启动、停止tomcat的两种方法 http:/ ... -
maven本地三方依赖包插件addjars-maven-plugin
2015-05-03 20:52 2052http://www.blogjava.net/miaoyac ... -
maven-antrun-plugin的使用
2015-04-26 19:45 2625自定义maven变量以及maven内置常量http://pan ... -
maven资源resources文件引用
2015-04-26 00:20 2101maven资源文件引用 http://stonedeng.it ... -
maven 打包的同时将生成的jar复制到指定路径
2015-04-24 10:20 2297http://www.douban.com/note/2309 ... -
Plugin execution not covered by lifecycle configuration
2015-04-22 20:09 2878异常信息: Plugin execution not cove ... -
解决Maven报Plugin execution not covered by lifecycle configuration
2015-04-21 16:08 2384解决Maven报Plugin execution not co ... -
收集Maven镜像地址
2015-04-20 22:32 1021http://www.oschina.net/question ... -
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp-1
2015-04-20 22:10 2179办法1: eclipse创建maven工程报错 Could n ... -
Maven多模块项目搭建
2015-04-09 11:03 3819maven pom.xml加载不同properties配置 h ... -
maven 常用命令
2015-03-17 11:43 982http://my.oschina.net/phacks/bl ... -
maven打包获得svn版本号
2015-02-03 12:50 6214有两种方法; 1. 使用命令行, linux安装subvers ... -
Maven3 自定义插件开发
2014-08-21 10:29 1337Maven3实战笔记15编写Maven插件 http://su ... -
maven打包的时候解析和替换占位符
2014-08-21 10:12 2396maven的mvn clean package打包xml文件中 ... -
Maven —— 如何设置HTTP代理
2014-05-24 01:30 1389http://www.cnblogs.com/memory4y ...
相关推荐
### Eclipse 创建多模块Maven项目的详细步骤 在软件开发领域,Maven作为一种自动化构建工具,因其强大的依赖管理和项目构建功能而被广泛采用。而在大型项目或微服务架构中,经常需要构建多模块项目来实现良好的代码...
创建Maven多模块项目的第一步是安装并配置Eclipse IDE和Maven插件。确保Eclipse已安装M2E插件(Maven Integration for Eclipse),该插件允许Eclipse与Maven无缝集成。 接下来,我们开始创建多模块项目: 1. **...
1. **初始化主项目**:首先,在Eclipse中创建一个新的Gradle项目,作为整个多模块项目的根目录。根目录的`build.gradle`文件将包含所有子模块的定义。 2. **添加子模块**:在根目录下,为每个子模块创建一个单独的...
本教程将聚焦于使用Eclipse集成开发环境(IDE)创建一个基于SSM(Spring、Struts2、MyBatis)框架和MySQL数据库的多模块Maven项目。SSM是Java Web开发中常用的三大组件,它们各自负责应用程序的不同层面:Spring管理...
本篇文章将详细探讨"Maven多模块项目构建过程",并结合提供的资源"搭建maven多工程模块步骤",来深入理解如何创建和管理一个包含多个子项目的Maven工程。 1. Maven多模块项目概述: Maven多模块项目是指由一个父...
【标题】"freemarker+struts2+在eclipse中创建maven项目"涉及到的是一个基于Java Web开发的技术组合,主要包括Maven构建工具、Freemarker模板引擎和Struts2框架。以下是对这些技术的详细说明: 1. **Maven**: ...
要使用Eclipse搭建Maven多模块项目,首先需要创建一个Maven项目。可以按照以下步骤创建: 1. 打开Eclipse,选择“File”->“New”->“Project”,然后选择“Maven Project”。 2. 在“New Maven Project”对话框中...
对于包含多个子模块的Maven项目,Eclipse提供了良好的支持,可以在一个父项目下管理所有子模块,方便进行整体构建和调试。 **8. Maven构建配置** 用户可以在Eclipse的“Run Configurations”中为特定的Maven目标...
在Eclipse中创建Spring Boot项目时,通常推荐使用Maven或Gradle来自动化依赖管理,因为它们可以自动下载并管理这些jar包及其依赖关系。然而,如果你选择手动管理,确保正确地把这些jar包添加到项目的类路径中,以...
6. **聚合与模块化项目支持**:对于包含多个子项目的多模块Maven项目,m2eclipse能够有效地管理和构建整个项目结构。 7. **Eclipse特性集成**:例如,m2eclipse与Eclipse的调试器和测试框架(如JUnit)紧密集成,...
总之,"maven多模块项目工程-已搭建好"是一个已经配置好的、使用Eclipse开发的项目结构,通过"xd-parent"模块实现了依赖和插件的集中管理,方便开发者进行模块化开发,提高了项目的可维护性和开发效率。在实际使用中...
Maven使用一个统一的约定优于配置的原则,使得项目的构建过程标准化,大大简化了多模块项目的管理。 Eclipse Maven3 Plugin的安装过程相对简单,首先,你需要在Eclipse的“Help”菜单中选择“Install New Software...
7. **聚合项目支持**:对于包含多个模块的Maven聚合项目,M2E能够有效地管理各个子项目,提供统一的构建和调试环境。 8. **配置同步**:当Eclipse项目设置与Maven POM不一致时,M2E可以进行同步,保持两者的一致性...
在IT行业中,Maven是一个非常重要的构建工具,主要用于管理Java项目的构建、依赖和文档生成。...随着技能的提升,你还可以学习更多高级话题,如Maven插件、多模块项目、持续集成等,以提高开发效率和项目质量。
7. **多模块项目支持**:对于包含多个子项目的多模块Maven项目,插件能够正确地管理各个模块之间的依赖关系。 8. **版本管理**:支持Maven的版本管理特性,如Snapshot版本的处理和更新检查。 9. **构建触发**:...
Eclipse构建和部署Maven项目涉及多个步骤,包括创建Maven工程、配置Maven项目、将其转换为Dynamic Web项目以及设置Web部署集。以下是对这些步骤的详细解释: 1. 创建Maven工程: - 在Eclipse中,选择"File" > "New...
相比MyEclipse内置的Maven支持,Eclipse的m2e插件在处理Maven项目的构建和部署时更为稳定,尤其是在资源文件的发布和类文件的生成位置方面。 使用Maven的好处主要体现在以下几个方面: 1. 自动下载和管理依赖:...
本教程将详细介绍如何使用Eclipse结合Maven创建一个Spring MVC项目。 首先,确保你已经安装了Eclipse IDE和Maven。如果没有,你需要访问官方网站下载并按照指示进行安装。对于Eclipse,可以选择Java EE版本,因为它...