对于如何让Eclipse解析Maven2生成的类?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解eclipse中的maven,并且为您提供关于android–如何让Eclipse自动建议方
对于如何让Eclipse解析Maven 2生成的类?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解eclipse中的maven,并且为您提供关于android – 如何让Eclipse自动建议方法?、eclipse maven build、maven clean、maven install和maven test的区别 精析、Eclipse WTP,Maven和M2eclipse-不复制提供的jar、eclipse 导入 maven 多模块项目,如何让子模块项目化的宝贵知识。
本文目录一览:- 如何让Eclipse解析Maven 2生成的类?(eclipse中的maven)
- android – 如何让Eclipse自动建议方法?
- eclipse maven build、maven clean、maven install和maven test的区别 精析
- Eclipse WTP,Maven和M2eclipse-不复制提供的jar
- eclipse 导入 maven 多模块项目,如何让子模块项目化
如何让Eclipse解析Maven 2生成的类?(eclipse中的maven)
我正在使用Google协议缓冲区为我的项目生成一些Java类。使用Maven 2及其“ antrun”插件,这些类在编译之前重新生成,输出到目标/生成源,并在构建过程中放在类路径中。因此,从POM构建项目是没有问题的。
但是,Eclipse不知道如何解析生成的类,因为在开发过程中,它所在的文件夹似乎不在IDE的类路径上。我正在使用m2eclipse并让它为我管理依赖项,因此我期望Maven能够解决这一问题。
如何获得生成代码的IDE支持(代码完成等)?
答案1
小编典典在项目浏览器中应该看到的是一个名为“ Maven Dependencies”的容器,代替了通常的“参考库”。这意味着m2eclipse正在管理您的构建路径。
就我而言,要实现此目的,我在“项目”->“属性”的“ Maven”部分中选中了“包括模块”,而未选中“在处理资源时跳过Maven编译器插件”。
答案2
小编典典m2eclipse不支持此功能。您必须手动将文件夹添加target/generated-sources为源文件夹。当您告诉m2eclipse“更新项目配置”时,此内容将被覆盖,您必须将其还原。
另外,请确保Eclipse在工作空间中查找更改。
不过可能会有一些问题。最终,您将遇到无法编译某些类的错误,因为某些其他类无法解析。但是,代码完成将起作用。此问题的根本原因是,当Maven更改中的类文件时,Eclipse会感到困惑target。
答案3
小编典典m2eclipse支持这一点。首先,将路径添加到构建路径:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.8</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.build.directory}/generated-sources/java/</source> </sources> </configuration> </execution> </executions></plugin>
其次,在m2e中添加对此的支持:
<pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <versionRange>[1.0,)</versionRange> <goals> <goal>parse-version</goal> <goal>add-source</goal> <goal>maven-version</goal> <goal>add-resource</goal> <goal>add-test-resource</goal> <goal>add-test-source</goal> </goals> </pluginExecutionFilter> <action> <execute> <runOnConfiguration>true</runOnConfiguration> <runOnIncremental>true</runOnIncremental> </execute> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins></pluginManagement>
如果您的eclipse安装已安装了“ org.eclipse.m2e.discovery.lifecyclemapping.buildhelper.xml”插件,则可能无需执行第二步。可通过窗口->首选项-> Maven->发现使用此插件。当前,这在Eclipse Kepler上不起作用,因此,我获取了JAR(从Catalog URL中显示的xml链接到)并org.eclipse.m2e.discovery.lifecyclemapping.buildhelper.xml手工提取了片段。
android – 如何让Eclipse自动建议方法?
我刚刚完全删除了Eclipse和Android SDK,并从Android SDK包中重新安装了它们. (我这样做是因为随着时间的推移已经积累了很多膨胀,我无法让SDK Manager识别新版本的ADT.)
Eclipse曾经弹出一个类的所有可用方法的列表,如果我输入类的名称然后是一个点,并在我继续键入时开始过滤列表.自重新安装以来,此功能无效.我怎么能打开它?
我已经在SDK Manager中安装了API 17的源代码和文档.
解决方法:
需要在Java中检查以下框 – >编辑器 – >内容辅助 – >首选项的高级部分:
> Java非类型提案
> Java提案
> java类型提案
eclipse maven build、maven clean、maven install和maven test的区别 精析
1.情景展示
选中maven项目,右键-->Run As或Debug As-->maven buid,maven install,maven test有什么区别?
2.区别说明
6 Maven clean-->执行的是maven的原生命令:
mvn clean
表示:删除target目录。
原目录结构存在target目录
执行该命令后, target目录被删除。
2018/11/14
选中target目录-->右键-->刷新-->在windows资源管理器下打开该目录,你会发现class已经重新编译好
注意:这不是mvn clean命令执行的只是清空target目录,classes文件之所以重新被编译,依赖于eclipse的自动编译功能!
7 Maven generate-sources-->执行的是maven的原生命令:
mvn generate-sources
表示:会根据pom配置去生成源代码格式的包,产生应用需要的任何额外的源代码(没用过)
8 Maven install-->执行的是maven的原生命令:
mvn install
表示:对项目进行编译、将项目打成war包并且发布到本地仓库。
target目录说明:
classes目录:.class,.properties,.xml文件;
项目名目录:项目所有源码(前端、后台、jar包)
项目名.war:将项目名目录打成的war包。
生成的target目录展示
安装到本地仓库的目录展示
9 Maven test-->执行的是maven的原生命令:
mvn test
表示的是:对项目进行编译并执行测试代码。
生成的目录:
5 Maven build...-->maven没有mvn buid命令
表示的是:这是eclipse自带的mvn插件,通过这个功能,你可以自定义设置要执行的maven命令。
用这个功能,我们能干什么?
举2个栗子:
案例一:
因为maven在打包时,如果已经存在一个包时,再次执行打包命令时,如果不把原来的war包删除,经常会导致包没有更新;
这时,我们就需要先清除该war包(执行clean命令对应eclipse中的Maven clean功能),再重新打包(执行package或install命令对应eclipse中的Maven install功能)。
我们可以使用"Maven build"这个功能,在"Goals"一栏,输入命令:clean install,执行一次即可。
案例二:
对项目进行打包的时候,跳过单元测试。
eclipse没有这个功能,只能通过自定义maven命令来实现,在Maven build...这个功能进行设置。
示例一:打包并发布到本地仓库
错误用法:不设置命令,直接run
相当于maven命令:
mvn
报错信息如下:
正确用法:输入 install
示例二:打包时,跳过单元测试
方式一:在上图勾选上“Skip Tests”
使用这种方式:src/test/java和src/test/resources这两个目录下的文件不会被编译,自然不会被添加到编译好的项目当中。
方式二:声明maven命令:“-DskipTests”
使用这种方式: src/test/java和src/test/resources这两个目录下的文件依然会被编译,但不会被添加到编译好的项目当中。
4 Maven build
表示的是:执行已经定义好的maven命令。
一个项目可以“Maven build...”功能定义n个maven命令,然后通过“Maven build”功能来执行想要执行的命令。
Run Configurations...
可通过这个功能,对已经自定义的maven命令进行新建、修改、运行、删除;
如何删除多余的maven命令?
选中不需要的maven命令,右键-->“删除”即可。
3.maven其它命令说明
mvn compile
表示的是:对项目源代码进行编译。
生成的目录:
mvn deploy
表示的是:将项目发布到远程仓库。
mvn dependency:tree
表示的是:显示maven依赖树。
mvn dependency:list
表示的是:显示maven依赖列表。
mvn package
表示的是:编译项目并打成war包。
跳过单元测试的两种方式:
方式一:
-DskipTests
方式二:
-Dmaven.test.skip=true
表示的是:测试类不会被编译,或即使被编译也不会被添加到项目当中。
另外,这个指令没有先后顺序,均能正常执行。
举例: 以打包并发布到本地仓库时,跳过测试类为例。
// 方式一:形式一
mvn install -DskipTests
// 方式一:形式二
mvn -DskipTests install
// 方式二:形式一
mvn install -Dmaven.test.skip=true
// 方式二:形式二
mvn -Dmaven.test.skip=true install
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
相关推荐:
- maven 配置环境变量
Eclipse WTP,Maven和M2eclipse-不复制提供的jar
使用Eclipse WTP和m2eclipse时,可以将所有依赖项复制到WEB-INF / lib(通过在Deployment程序集中添加“
maven依赖项”)。但是,还会复制范围“已提供”的依赖项,例如el-api和jsp-api。这会干扰容器,并且无法启动。
不复制“提供的”罐子的解决方案吗?
eclipse 导入 maven 多模块项目,如何让子模块项目化
eclipse 导入 maven 多模块项目后,子模块项目都在父模块项目内以文件夹形式来展示,代码也提示,让子项目项目化,包结构化是个问题?哪位大神处理过如此情况?求教
今天关于如何让Eclipse解析Maven 2生成的类?和eclipse中的maven的讲解已经结束,谢谢您的阅读,如果想了解更多关于android – 如何让Eclipse自动建议方法?、eclipse maven build、maven clean、maven install和maven test的区别 精析、Eclipse WTP,Maven和M2eclipse-不复制提供的jar、eclipse 导入 maven 多模块项目,如何让子模块项目化的相关知识,请在本站搜索。
本文标签: