- 浏览: 223530 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
Wangwei86609:
非常好的规则引擎框架,支持决策树和多线程运行规则https:/ ...
规则引擎 -
hzxlb910:
真详细,收藏哈
maven setting.xml配置说明 -
东方胜:
[b][/b]
脚本语言 Tcl -
345161974:
hyw520110 写道345161974 写道这个Visua ...
Visual Tcl Binary 完整版(完美中文支持) -
hyw520110:
345161974 写道这个Visual Tcl Binary ...
Visual Tcl Binary 完整版(完美中文支持)
简介: Maven 是一个功能强大的工具,但需要将其集成到流行的集成开发环境 (IDE) 中,以使其功能更易用且让您的工作更轻松,从而增加您的生产力和项目质量。Mevenide 将 Maven 平滑集成到 Eclipse 中,帮助降低了第一次面对 Maven 时的学习曲线。本教程提供了如何让 Maven 与 Eclipse 协作的具体例子。
用 Maven 处理复杂构建
最近有一股 Maven 热,您可能也没有幸免。在 2001 年 Maven 进入市场之前,还没有真正的构建工具。开发人员和构建管理人员必须不厌其烦地编写构建脚本,并以没完没了的维护噩梦收场。
Maven 是围绕项目对象模型 (POM) 概念的软件项目管理工具,POM 封装了项目的结构和概念元数据,比如标识信息,依赖关系和布局描述。重要项目元数据的声明表示缩短了需要投入项目中的时间量,并增强了它的全局理解力。
Maven 还促进了重用性和简约性,通过鼓励减少内容关联并将项目分割成更小的实体,使得项目更易维护。但当应用程序分割成小颗粒的子项目时,您需要一种方法来立即构建整个应用程序。基于此目的,Maven 提供了一种自动分解处理顺序、将多个项目构建成全局项目的方法(参阅 参考资料)。
在本教程中,将为 Eclipse 创建 JavaNCSS 插件(参阅 参考资料)。JavaNCSS 允许从 Java 源代码收集简单的 metric。不幸的是,它在开发时并未考虑到重用性和集成。所以,必须先在其上创建一薄层以便将其简单嵌入。尽管 JavaNCSS 主要是一个命令行工具,但它具有将收集到的数据保存到 XML 文件中的能力。毫无疑问,您将使用该特性。
您已经能猜到需要做什么了。您需要一个命令行包装器和一个解析器。
为了实现简约性和重用性的目的,您将分离这两方面,将它们开发为独立的项目,每个项目生成自己的工件,并具有自己的生命周期。然而,它们是同一项目的一部分,因此共享一些属性,比如公共目录布局。为了避免信息重复,将在抽象父项目中分解共享属性。最终将得到三个项目:
-
metrics-model
提供解析器。该解析器和映射到 XML 的底层类是使用maven-modello-plugin
(参阅 参考资料)从 XML 描述(可以在本教程的 os-maveneclsrc.zip 文件中找到)中生成的。 -
metrics-core
封装命令行包装器,并依赖metrics-model
。 -
metrics-commons
是metrics-core
和metrics-model
继承的父项目。
下列代码段显示了 metrics-commons
的项目模型:
<project> <pomVersion>3</pomVersion> <groupId>dw-metrics</groupId> <artifactId>metrics-commons</artifactId> <currentVersion>1.0-SNAPSHOT</currentVersion> <name>Metrics Parent</name> <build> <sourceDirectory>src/main/java</sourceDirectory> <unitTestSourceDirectory>src/test/java</unitTestSourceDirectory> <!-- declare resource directories as well --> </build> </project> |
metrics-core
和 metrics-model
都继承了 metrics-commons
,如下所示:
- 创建
metrics-model
和metrics-core
POM - 记住将
metrics-model
添加到metrics-core
依赖关系中,将maven-modello-plugin
添加到metrics-core
的依赖关系列表中,如下所示:<project> <extend>../metrics-commons/project.xml</extend> <pomVersion>3</pomVersion> <artifactId>metrics-model</artifactId> <name>Metrics Model</name> <dependencies> <dependency> <groupId>maven</groupId> <artifactId>maven-modello-plugin</artifactId> <version>1.0-alpha-1-SNAPSHOT</version> <type>plugin</type> </dependency> </dependencies> <build> <sourceDirectory>target/generated-sources/modello</sourceDirectory> </build> </project>
因为要生成该项目包含的惟一源文件,所以必须覆盖 metrics-model
POM 中的 sourceDirectory
元素以使 maven-java-plugin
正确工作。源生成应发生在编译开始之前:
- 在
metrics-model
中创建 maven.xml 文件 - 将
preGoal
添加到java:compile
目标中:<project xmlns:maven="jelly:maven"> <preGoal name="java:compile"> <!-- generate classes with modello first --> <attainGoal name="modello:java" /> <attainGoal name="modello:xpp3-reader" /> <path id="generated.src" location="${maven.modello.targetDirectory}"/> <!-- add generated.src to default src path --> <maven:addPath id="maven.compile.src.set" refid="generated.src"/> </preGoal> </project>
还需要创建一个主项目,其惟一目的在于触发多项目构建。如下所示:
- 在
metrics-master
中创建 maven.xml 脚本文件 - 声明方便的自定义目标:
<project xmlns:j="jelly:core"> <goal name="metrics:site" prereqs="clean,multiproject:site" /> <goal name="metrics:build"> <j:set var="goal" value="clean,jar:install"/> <attainGoal name="multiproject:goal"/> </goal> </project>
要构建整个项目,打开 shell 并运行下列命令:maven metrics:build
。
图 1 以类似 UML 的表示法描述了已经创建的项目结构。
图 1. Metrics 项目的结构和依赖关系
现在可以开始编码核心类(可能还会发现从 os-maveneclsrc.zip 文件中获得目前所描述的项目的源代码更容易一些)。
无疑您不能从记事本中获得任何生产力,而当今的项目太复杂了,以至于不得不使用 IDE。所以,问题很简单:如何协调 Maven 和 IDE?如何在 Eclipse 中编码和开发,如何用 Maven 构建?
Eclipse 具有自己的项目表示,所以需要一座桥梁以将 Maven 元数据转换为 Eclipse 可以理解的形式。幸运的是,Maven 带有一个插件 maven-eclipse-plugin
,它允许从 POM 自动生成 Eclipse 项目文件(参阅 参考资料)。
取决于 POM 中的信息,maven-eclipse-plugin
创建 .classpath 文件,其中带有源目录和测试源目录项、依赖关系和依赖项目项,以及输出目录项。必要的时候甚至会添加 zip 源附件。步骤如下:
- 要指定
metrics-core
中的metrics-model
依赖关系被绑定到 Eclipse 项目,则将下列属性添加到metrics-model
依赖关系中:<properties> <eclipse.dependency>true</eclipse.dependency> </properties>
- 要为每个子项目生成 .classpath 文件,从
metrics-master
中运行下列命令:maven -Dgoal=eclipse:generate-classpath multiproject:goal
在开始编码之前,将项目导入到 Eclipse 中,步骤如下:
- 启动 Eclipse
- 浏览到 file > import
- 选择 Existing Project into workspace 并单击 Next
- 在根目录文本框中,输入
metrics-master
的父文件夹 - 单击 Select All,然后单击 Finish
此时,项目将不编译。maven-eclipse-plugin
使用特殊的类路径变量 MAVEN_REPO
生成 .classpath,它指向本地存储所有依赖关系的本地 Maven 存储库, 从而允许更好的协作开发。需要按如下步骤声明:
- 打开 Preferences 窗口
- 转到位于 Java > Build Path 节点下的 Classpath Variables 页面
- 单击 New
- 将名称设置为
MAVEN_REPO
,值设置为本地 Maven 存储库的位置(参见图 2)图 2. 在 Classpath Variables 窗口中添加
MAVEN_REPO
现在可以开始编码了。
正如前面所看到的,Maven 在处理涉及许多子项目的复杂项目时有用。如果更深入地研究所推荐的 Maven 多项目布局,将注意到它是以层次方式构造的:结构的根包含共享元数据,比如父 POM、共享属性和公共目标定义。在某种程度上,该结构类似于 Eclipse 工作空间,包括包含当前工作空间配置的顶层元数据文件夹。
但是,Eclipse 工作空间元数据不能由用户手动编辑,但是您应该能够添加并手动编辑 Maven 元数据(最终添加文件夹以构造它)。不能将 Maven 项目根导入为 Eclipse 项目,因为它将与现有子项目重叠,而 Eclipse 还不支持项目重叠。
自然冲突存在于典型 Maven 项目布局(层次结构,父文件位于层次结构根)和 Eclipse 项目结构。这就是为什么让 Maven 和 Eclipse 顺利协作的惟一可行方法是平铺层次结构,以使共享元数据包含在子项目中。
但这并不总是可行。例如,假设要检出层次结构化的但对其没有控制权的项目。如何让 Eclipse 与该项目良好协作?在这种情况下,一些应急方案(每个都具有自己的缺点)可以帮助您处理该问题:
- 使用一个大 Eclipse 项目——主要缺点是损失依赖关系可见度;几乎无法说明哪个模块依赖于哪个库。这还促进了循环,使得平均信息量增加得更快,维护更困难。
- 在 Eclipse 外部编辑根文件——这是本文展示的最安全的应急方案。但是,该解决方案不易于使用,因为它需要在工具间切换,而且还易出错。
- 创建只包含到根文件和文件夹的链接的虚拟项目——尽管易于使用,但该解决方案有两个缺点:不支持变量扩张(因此在团队环境中很麻烦),而且必须手动配置。
这些只是提示,并非建议。应该尽量避免使用这些方法。最终,应该尝试重构您的构建,而不要依赖这些让事情变得更困难的应急方案。
发表评论
-
Maven Artifacts如何部署到仓库
2012-03-28 11:50 998http://www.blogjava.net/lishunl ... -
maven常见问题问答
2011-11-16 13:24 767前言 Maven,发音是[`meivin],"专家 ... -
maven setting.xml配置说明
2011-11-16 12:43 1454setting.xml view plain ... -
Maven实战指南:“打包”的技巧
2011-10-11 10:13 2130http://tech.it168.com/a2011/062 ... -
M2工程 mvn deploy 401 403错误处理
2011-10-10 15:11 1150http://hi.baidu.com/g4_gc/blog ... -
maven部署web工程基础步骤
2011-10-10 12:43 20741.准备工作 下载maven(url:http://a ... -
eclipse maven wtp jar/lib deploy
2011-10-09 09:57 1029eclipse工程(with maven & wtp) ... -
配置Maven web项目
2011-09-13 16:00 9461、创建Web应用 mvn archetype:genera ... -
maven报错:mvn deploy
2011-09-09 14:01 1704一.Error deploying artifact: ... -
maven配置篇之pom.xml
2011-09-08 15:24 841说完了settings.xml配置, ... -
简述maven中的profiles
2011-09-08 15:06 1031Profiles是maven的一个很关键的术语:profile ... -
maven项目添加jar包.
2011-08-16 09:31 1169很多新手都不知道如何在maven项目里添加jar包. 以前我还 ... -
Hudson+Maven+SVN 快速搭建持续集成环境
2011-05-26 14:09 1039原: http://www.blogjava.net ... -
基于maven和hudson打造持续集成环境
2011-05-26 12:58 1148对持续集成的需求 对持续集成的需求主要来自项目过程的痛,在 ... -
maven 配置篇 之 settings.xml
2011-05-24 20:36 887maven2 比起maven1 来说,需要配置的文件少多了,主 ... -
Maven生命周期详解
2011-05-24 17:47 704Maven强大的一个重要的 ... -
激活Maven profile的几种方式
2011-05-24 17:43 897首先简单介绍下 Maven 的 profile 是什么。对于人 ... -
使用Profile和Resources Filter隔离测试环境
2011-05-24 17:42 850Maven能够帮我们很好的 ... -
使用maven-sql-plugin实现持续数据库集成(CDBI)
2011-05-24 17:41 987数据库持续集成(Continuous Database Int ... -
Maven最佳实践:版本管理
2011-05-24 16:32 851原文:http://juvenshun.iteye ...
相关推荐
MicroService-SpringCloud关于SpringCloud 实现微服务架构的经典整合案例,从零搭建到完成1. 环境准备:Eclipse:Oxygen....搭建过程中还是遇上了一些坑的,但是都总结在了案例文档里,如果感兴趣的同学可以参考,目前Sp
- 在Eclipse中新建一个Maven项目,选择Spring MVC archetype - 添加必要的依赖,如`spring-websocket`, `spring-messaging`, `javax.websocket-api`, `tomcat-embed-websocket` 3. **配置WebSocket**: - 在...
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
kolesar_3cd_01_0716
latchman_01_0108
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
pimpinella_3cd_01_0716
petrilla_01_0308
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
内容概要:本文档由张卓老师讲解,重点探讨DeepSeek的技术革新及强化学习对未来AI发展的重要性。文章回顾了AI的历史与发展阶段,详细解析Transformer架构在AI上半场所起到的作用,深入介绍了MoE混合专家以及MLA低秩注意机制等技术特点如何帮助DeepSeek在AI中场建立优势,并探讨了当前强化学习的挑战和边界。文档不仅提及AlphaGo和小游戏等成功案例来说明强化学习的强大力量,还提出了关于未来人工通用智能(AGI)的展望,特别是如何利用强化学习提升现有LLMs的能力和性能。 适用人群:本资料适宜对深度学习感兴趣的研究人员、开发者以及想要深入了解人工智能最新进展的专业人士。 使用场景及目标:通过了解最新的AI技术和前沿概念,在实际工作中能够运用更先进的工具和技术解决问题。同时为那些寻求职业转型或者学术深造的人提供了宝贵的参考。 其他说明:文中提到了许多具体的例子和技术细节,如DeepSeek的技术特色、RL的理论背景等等,有助于加深读者对于现代AI系统的理解和认识。
有师傅小程序开源版v2.4.14 新增报价短信奉告 优化部分细节
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
商城二级三级分销系统(小程序+后台含源码).zip
li_3ck_01b_0918
nicholl_3cd_01_0516
媒体关注度是一个衡量公众对某个事件、话题或个体关注程度的重要指标。它主要反映了新闻媒体、社交媒体、博客等对于某一事件、话题或个体的报道和讨论程度。 媒体监督的J-F系数(Janis-Fadner系数)是一种用于测量媒体关注度的指标,特别是用于评估媒体对企业、事件或话题的监督力度。J-F系数基于媒体报道的正面和负面内容来计算,从而为公众、研究者或企业提供一个量化工具,以了解媒体对其关注的方向和强度。 本数据含原始数据、参考文献、代码do文件、最终结果。参考文献中JF系数计算公式。 指标 代码、年份、标题出现该公司的新闻总数、内容出现该公司的新闻总数、正面新闻数全部、中性新闻数全部、负面新闻数全部、正面新闻数原创、中性新闻数原创、负面新闻数原创,媒体监督JF系数。
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!