怎么在创建maven工程创建时设置构建参数

trackbacks-0
maven其实也很笨重繁琐,还是避免不了xml的各种配置,相比较gradle更灵活简洁,但公司不会让人这么灵活构建项目。不废话了,进入主题。现在开发中,一个项目基本都是分模块开发,一个模块一个project,然后一起管理所有模块,虽然maven已经提供了不少archetype,生成基本的项目结构,但感觉有时候还是不太满足自己的需求,有些jar或许用不到,整体模块架构目录结构以及依赖不是自己想要的,这个时候自定义archetype就能派上用场。&&&&自定义开发archetype,首先得明确两个概念,maven的聚合和继承,聚合是为了管理多模块build,继承是为了管理依赖,这里的需求是自动构建一个父模块,以及多个子模块,同时父模块既是聚合也可继承依赖。步骤一:创建一个maven工程,结构中只需要个src/main/resources目录以及一个简单的pom.xml,pom中packaging类型为jar即可,如图:步骤二:src/main/resources目录下面必须包含两个目录:archetype-resources和META-INF/maven/archetype-metadata.xml,如图:说明:archetype-resources目录是用来存放将来生成的项目结构是什么,如上图所示有两个工程module-service和web以及一个父pom.xml,这个完全依据你的需求写,META-INF/maven/archetype-metadata.xml是用来描述如何生成项目结构。步骤三:描述archetype-metadata.xml 可参考http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html里面只有三个元素标签&requiredProperties/&、&fileSets/&、&modules/& 如图:其实只要明白archetype-resources目录和这个xml描述相对应,这里的&requiredProperty/&&fileSets/&&modules/&就很好理解1:&requiredProperty/&创建工程用户必填内容,用于Velocity templates替换,只要&fileSet&标签的filtered为true,即可表明该fileSet包含的文件内容都进行替换,比如每个子模块的artifactId都不一样,即可在pom里面&artifactId&${module-artifactId}&/artifactId&,这里的值即可替换成用户输入的值。2:这里根标签下的&fileSets/&对应archetype-resources根目录。3:&modules/&对应archetype-resources根目录下面的module-service和web目录。4:&module/&又可包含fileSet标签,描述子模块的项目结构。5:对于多模块开发来说,maven会采用默认的父子模块目录结构,所以这里根标签下的&fileSets/&没有必要存在,删除即可,因为只要在archetype-resources根目录下有一个pom.xml,将来生成的父子模块目录结构,父目录下会自动包含该pom文件。再看archetype-resources目录下的子模块如图:提示:1:子模块包含的目录结构是将来生成工程后会包含的目录,里面仍然会用到Velocity templates(需要在archetype-metadata.xml中子模块的fileSet标签里设置元素filtered="true",如果还需要生成包那么packaged="true"即可),比如每个类会有包名那么这样写:package ${package}.xxx,因为包名一般采用groupId.artifactId的格式,也即用户输入的内容,用${package}即可替换成包名。如图:2:子模块中建立的包如src/main/java下面,api、entity、services等见上上图~,无需添加根包名,因为maven会根据groupId.artifactId自动生成包名,也即如果fileSet标签的元素packaged="true"且包下面存在java类文件,那么api、entity、services等会默认生成在该groupId.artifactId包下面。3:子模块module-service继承父pom(archetype-resources根目录下的pom.xml)的依赖,无需在子模块里面添加&parent/&标签,因为maven默认会认为子模块继承父pom的依赖, 会自动加入&parent/&标签,如图:无需添加&parent/&标签,生成工程后,会自动添加。至此一切完毕,然后运行mvn clean install即可将该archetype安装到本地仓库,在控制台输入mvn archetype:generate -DarchetypeCatalog=local选择你的archetype即可以交互方式生成工程,如果有错误,控制台会提示,按错排除即可。用eclipse也可安装,点击maven project--&next--&Catalog选择Default Local--&Add Archetype--&输入该archetype的groupId、artifactId、version确定即可出现。
阅读排行榜
评论排行榜君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
maven用途、核心概念、用法、常用参数和命令、扩展
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&maven创建java工程命令
maven安装、配置:进入cmd
到maven的工作目录,然后执行如下命令:
1.创建一个java project
mvn archetype:create -DgroupId=com.demo.maven
-DartifactId=mavenDemo
2.创建一个web project:
mvn archetype:create -DgroupId=com.demo.maven
-DartifactId=mavenWebDemo
-DarchetypeArtifactId=maven-archetype-mavenwebapp
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 idea创建maven工程 的文章

 

随机推荐