|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
在Java构建工具的天下里,先有了Ant,然后有了Maven。Maven的CoC[1]、依附办理和项目构建划定规矩重用性等特性,让Maven几近成为Java构建工具的现实尺度。但是,冗余的依附办理设置、庞大而且难以扩大的构建性命周期,都成为利用Maven的困扰。
Gradle作为新的构建工具,取得了2010Springy年夜奖,并进围了2011的Jax最好Java手艺创造奖。它是基于Groovy言语的构建工具,既坚持了Maven的长处,又经由过程利用Groovy界说的DSL[2],克制了Maven中利用XML繁杂和不天真等弱点。在EugeneDvorkin撰写的文章《最使人冲动的5个Java项目》中,他是如许先容Gradle的:
“工程主动化是软件项目乐成的需要前提,并且它应当完成起来复杂、易用、好玩。构建没有一模一样的办法,以是Gradle没有古板的强加办法于我们,只管你会以为查找和形貌办法很主要,但是Gradle关于怎样形貌有着十分好的撑持。我不以为工具可以挽救我们,可是Gradle能给你所必要的自在,你能够使用Gradle构建易形貌的、可保护的、简便的、高功能项目”。
在比来半年里,我在利用Gradle作为构建剧本的年夜型Java项目上事情,更深切体味到Gradle在项目构建过程当中是云云的复杂、易用。
1.多Module的项目
Hibernate项目卖力人SteveEbersole在Hibernate将构建剧本从Maven换成Gradle时,专门写了一篇文章《Gradle:why?》,文中提到Maven的一个弱点就是:Maven不撑持多module的构建。在Micro-Service[3]架构作风盛行的明天,在一个项目内里包括多个Module已成为一种趋向。Gradle自然撑持多module,而且供应了良多手腕来简化构建剧本。在Gradle中,一个模块就是它的一个子项目(subproject),以是,我利用父项目来形貌顶级项目,利用子项目来形貌顶级项面前目今面的模块。
1.1设置子项目
在多模块的项目中,Gradle遵守常规优于设置(ConventionOverConfiguration)准绳。
在父项目标根目次下寻觅settings.gradle文件,在该文件中设置想要包含到项目构建中的子项目。在构建的初始化阶段(Initialization),Gradle会依据settings.gradle文件来判别有哪些子项目被include到了构建中,并为每个子项目初始化一个Project对象,在构建剧本中经由过程project(‘:sub-project-name’)来援用子项目对应的Project对象。
一般,多模块项目标目次布局请求将子模块放在父项目标根目次下,可是假如有特别的目次布局,能够在settings.gradle文件中设置。
我地点的项目包含:
一个形貌中心营业的core模块
一个遗留的EnterpriseJavaBean(enterprise-beans)模块
两个供应分歧服务的Web项目(cis-war和admin-war)
一个经由过程schema天生jaxb对象的jaxb项目和一个用来用来打ear包的ear项目
一个用于寄存项目设置文件相干的config子目次。它不是子模块,以是config不该该被加到项目标构建中往。
它们都安排在根项目目次下。我们经由过程以下的settings.gradle来设置项目中的子项目:- includecore,enterprise-beans,cis-war,admin-war,jaxb,ear
复制代码 我们将必要到场到项目构建中的子项目设置在settings.gradle文件中,而没有到场不必要的config子目次。
<p>
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 |
|