赞
踩
Maven项目错误解决小结
注:整理错误,不喜欢为了一个小问题,占篇幅,所以请Ctrl+F自己查看,定位问题,愿为解决.
注:网络上的错误解决经验,只是作者在特定的条件下发生,或者适合你不适合你,请勿责怪,若无解决答案,请你请教他人或耐心解决,可以记录之后分享,我们爱分享,一起开始吧!
问题1:
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
解决1:
可以设一个windows os's环境变量M2_HOME指向你的maven安装目录
M2_HOME=D:\Apps\apache-maven-3.3.1
然后在Window->Preference->Java->Installed JREs->Edit
在Default VM arguments中设置
-Dmaven.multiModuleProjectDirectory=$M2_HOME
选中项目->右键Properties->选择Deployment Assemby->选择Add->选中Java Build Path Entries->Next->选择Maven Dependencies->Finish->Apply->OK
Eclipse -> Project -> Clean...
Ok.
<property name="realm" ref="shiroDBRealm" />
<bean id="shiroDbRealm" class="com.tsxs.security.ShiroDbRealmUser"></bean>
配置id和ref的大小写不一致(ctrl+f搜索不区分大小写一致).字母B/b.
在Convert to Maven Project的时候修改pom.xml下:<version>0.0.1-SNAPSHOT</version>到<version>0.0.1</version>后maven clean install.
最终解决:
1使用软件"010 Editor是一个全新的十六进位文件编辑器"查看文件头有乱码,删除保存就ok了.
2由于,我,重新整理的分区(双系统),无奈下,我重新搭建了一个项目,复制代码过去就ok了.
解决:重启一下console-nexus.bat就好了,或删除本地maven仓库对应的包(涉及到的根包一起删)
dependency没有在dependencies里面
主要删除本地maven的repositories下的相应位置jar的路径,重新install就ok.
或者重启nexus或没有启动nexus。
工程右键:Maven->Disable Maven Nature
然后,再次重新转maven:
Configure->Convert to Maven Project. ok!
因为<dependency>在<dependencies>中,但<dependencies>又在<dependencyManagement>中,删除最外层的<dependencyManagement>后,clean install 则解决!区别解释,备注附件!
项目上右键 ——> Maven ——> Update Project ……,打开一个(Update Maven Dependencies)的对话框,然后勾选住出错的项目,点击Ok
workspace下本项目的.setting下org.eclipse.jdt.core.prefs文件(修改和jdk一致版本):
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8
项目右键 --> properties --> Java Build Path的libraries保证只有:JRE System Library[jdk1.8.0.66]和 Maven Dependencies
注:如果还有Apache Tomcat v8.0[Apache Tomcat v8.0]则,Remove删除它,在pom.xml中添加以下依赖让maven统一管理!
注:版本看自己jdk和tomcat版本
<!-- servlet/jsp -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
dependencyManagement:
Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用在这个dependencyManagement 元素中指定的版本号。
如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改 ;另外如果某个子项目需要另外的一个版本,只需要声明version就可。
dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖。
dependencies:
相对于dependencyManagement,所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。如果你要发布同样的代码,但是由于技术原因需要生成两个单独的构件,你就要使用一个分类器(classifier)。
classifier:
如果你要发布同样的代码,但是由于技术原因需要生成两个单独的构件,你就要使用一个分类器(classifier)。
例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4 编译器,另一个使用Java 6 编译器,你就可以使用分类器来生成两个单独的JAR构件,它们有同样的groupId:artifactId:version组合。
如果你的项目使用本地扩展类库,你可以使用分类器为每一个目标平台生成一个构件。分类器常用于打包构件的源码,JavaDoc 或者二进制集合。
问题17:only whitespace content allowed before start tag and not \u0 (position: START_DOCUMENT se……
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。