maven2
编程技术  /  houtizong 发布于 3年前   69
Eclipse需要知道Maven的本地仓库的路径。所以,类路径变量M2_REPO必须设置。执行以下命令:
mvn -Declipse.workspace= <path-to-eclipse-workspace> eclipse:add-maven-repo </path-to-eclipse-workspace>
|
你也可以在eclipse内定义一个新的classpath变量:从菜单条,选择Window>Preferences,选择java>Build Path>Classpath变量页。进入eclipse,导入workspace下面的Sample Project。由于缺少MAVEN_REPO变量,Eclipse提示编译失败。在Eclipse的Preferences – Java - Build Path - Classpath Variables中添加名为MAVEN_REPO的变量,指向D:\maven\local\repository。
如果想让eclipse支持直接运行maven的goal,可以安装mavenide插件。
可能需要从eclipse 执行一些maven goals,这可以通过配置外部装载器实现。为eclise添加一个变量,指向本地maven的可执行文件(mvn.bat/mvn)。从菜单条,选择 Window>Preferences,选择Run/Debug>String Substitution,增加一个新的变量,比如maven_exec。当你设置新的外部装载器(丛菜单条,选择Run>External Tools,选择Program),你可以在位置字段引用刚才定义的maven_exec。进一步,引用project_log作为工作目录,指定所选的 maven goals作为参数,比如eclipse:eclipse。更多的信息请参考eclipse的帮助。
问题:如果插件可以产生变量和runner可能会好一点。
如果你有一个单模块的简单java项目,使用eclipse将十分简单。为了从你的POM产生eclipse项目文件,执行以下命令:
mvn eclipse:eclipse |
如果你已经使用eclipse 创建或者检出了项目,你只需在workspace中刷新项目。否则,你必须将项目导入eclipse工作空间(从菜单条选择File> Import>Existing Projects into Workspace)。在后面的例子,项目(目录)不应在你的workspace,因为eclipse可能导致错误,特别是你将eclipse作为scm 客户端时。
Due to the workspace idea many eclipse users are used to a flat layout and therefore want to keep this structure, which is possible but not recommended. Actually, the only reason for a flat multiple module project layout is the possibility to checkout and edit the parent POM without checking out the whole project. The following sample shows how to handle maven multiple module projects with eclipse while keeping the recommended hierachical project layout.
假设eclipse是你的SCM客户端,这个例子将告诉你如何设置一个新的多模块项目。
1. 设置一个新的叫做step-by-step的workspace,并且象上面所述增加M2_REPO类路径。
2. 打开命令行shell,并且切换到新建的工作空间(workspace)目录。
3. 从命令行使用archetype插件新建一个maven项目
mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse
|
4. 在step -by-step工作空间,使用eclipse创建一个新的简单项目guide-ide-eclipse(从菜单条,选择File>New> Project,选择Simple>Project)。Eclipse会为你的guide-ide-eclipse项目创建一个简单的. project文件,你应该能够看到一个pom.xml文件。
5. 删除src文件夹,并且打开pom.xml文件,将父项目的packaging改为pom。
<packaging>pom</packaging> |
问题:mvn eclipse:eclipse也许应该为pom packaging类型产生一个简单的.project文件。
6. 从命令行切换到guide-ide-eclipse项目路径,并且创建一些模块:
cd guide-ide-eclipse mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse-site mvn archetype:create -DgroupId=guide.ide.eclipse.core -DartifactId=guide-ide-eclipse-core mvn archetype:create -DgroupId=guide.ide.eclipse.module1 -DartifactId=guide-ide-eclipse-module1
|
7. 将新建的模块添加到父pom中。
<modules></modules> <module>guide-ide-eclipse-site</module> <module>guide-ide-eclipse-core</module> <module>guide-ide-eclipse-module1</module>
|
8. 在新建的模块的POMs中添加parent。
<parent></parent> <groupid>guide.ide.eclipse</groupid> <artifactid>guide-ide-eclipse</artifactid> <version>1.0-SNAPSHOT</version>
|
9. 添加模块间依赖:
<dependency></dependency> <groupid>guide.ide.eclipse.core</groupid> <artifactid>guide-ide-eclipse-core</artifactid> <version>1.0-SNAPSHOT</version>
|
10. 把项目安装到本地仓库,并且产生eclipse文件:
mvn install mvn eclipse:eclipse |
11. 使用eclipse的团队开发支持(从context菜单选择Team>Share Project)检入项目。记住,不要检入产生的eclipse文件。如果使用CVS,你因该在每个模块有一个.cvsignore文件,内容如下:
target .classpath .project .wtpmodules |
即使是父项目,也应该有.cvsignore文件。当你从repository检出项目时,Eclipse自动生成新的简单的.project文件。
问题:插件应该可选的产生.cvsignore文件。
现在,你有不同的处理选项。如果你同时工作于所有模块,你应该具有eclipse 的项目依赖,而不是二进制依赖,你可以设置一个新的workspace,并且从step-by-step/guide-ide-eclipse中导入。记 住,你必须先删除父项目的.project文件。结果和从命令行检出整个项目相同,运行mvn eclipse:eclipse并且最后把项目导入到你的eclipse工作空间。两种方式都可以使用eclipse同步你对项目的修改。
对于有许多人参与的大项目而言,检出所有模块并且保持更新是一件相当乏味的工作。特别是你只对其中某(几)个模块感兴趣。这种情况,使用二进制依赖更合适。只要在eclipse上检出你需要工作的模块,然后为每个模块运行mvn eclipse:eclipse。当然所有用到的artifacts在你的maven仓库中必须可用。
扁平项目布局:
有可能将父POM从自己的目录搬移到和模块相同级别的目录。
1、在guide-ide-eclipse下创建一个名为guide-ide-eclipse-project的新目录,并且将父POM搬移到这个目录。
2、对父POM修改模块引用:
<modules></modules> <module>../guide-ide-eclipse-site</module> <module>../guide-ide-eclipse-core</module> <module>../guide-ide-eclipse-module1</module>
|
问题:发布(releasee)插件不支持扁平结构。
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接