导入maven项目各个注解均报错
所遇问题
导入maven项目各个注解均报错了
思考1:
这个项目使用了springboot;spring是个”大容器”,所有对象的创建和管理都交给了它, (SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。
最明显的特点是,让文件配置变的相当简单、让应用部署变的简单(SpringBoot内置服务器,并装备启动类代码),可以快速开启一个Web容器进行开发。);先去查看springboot是否扫描到这些文件;
结果:查看配置文件XML以及各层的依赖,应该没出错。
思考2:
该导入的包是否成功导入?查看maven依赖树(mvn dependency),并检查依赖版本等是否有用;结果:应该没错,依赖树上显示了加入的jar包。
思考3:
有事问度娘;百度上的方法各异;我并没有成功,也许是我操作或者对它们的理解出了问题吧;决定问大佬,我问了大佬,大佬从事安卓开发多年,所以帮我叫来另一个大佬;在另一个大佬的指点下,
解决方案
我先是去了本地仓库setting.xml下的镜像改为aliyun的镜像;(下图是查找你当前maven项目的本地仓库已经配置文件setting.xml的方法)


我这个是默认生成的,如果没有配置文件setting.xml;就自己新建一个;新建方法很多这里就不介绍了;附上我的setting.xml
- <?xml version="1.0" encoding="UTF-8"?>
-
- <!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
- <!--
- | This is the configuration file for Maven. It can be specified at two levels:
- |
- | 1. User Level. This settings.xml file provides configuration for a single
- | user, and is normally provided in
- | ${user.home}/.m2/settings.xml.
- |
- | NOTE: This location can be overridden with the CLI option:
- |
- | -s /path/to/user/settings.xml
- |
- | 2. Global Level. This settings.xml file provides configuration for all
- | Maven users on a machine (assuming they're all using the
- | same Maven installation). It's normally provided in
- | ${maven.home}/conf/settings.xml.
- |
- | NOTE: This location can be overridden with the CLI option:
- |
- | -gs /path/to/global/settings.xml
- |
- | The sections in this sample file are intended to give you a running start
- | at getting the most out of your Maven installation. Where appropriate, the
- | default values (values used when the setting is not specified) are provided.
- |
- |-->
- <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
- <!-- localRepository
- | The path to the local repository maven will use to store artifacts.
- |
- | Default: ~/.m2/repository
- <localRepository>/path/to/local/repo</localRepository>
- -->
-
- <!--<localRepository>C:/Users/Administrator/.m2/repository</localRepository> -->
-
- <localRepository>F:/eclipse_workspace20170314/repository</localRepository>
-
- <!-- interactiveMode
- | This will determine whether maven prompts you when it needs input. If set
- | to false, maven will use a sensible default value, perhaps based on some
- | other setting, for the parameter in question.
- |
- | Default: true
- <interactiveMode>true</interactiveMode>
- -->
-
- <!-- offline
- | Determines whether maven should attempt to connect to the network when
- | executing a build. This will have an effect on artifact downloads,
- | artifact deployment, and others.
- |
- | Default: false
- <offline>false</offline>
- -->
-
- <!-- pluginGroups
- | This is a list of additional group identifiers that will be searched when
- | resolving plugins by their prefix, i.e. when invoking a command line like
- | "mvn prefix:goal". Maven will automatically add the group identifiers
- | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not
- | already contained in the list.
- |-->
- <pluginGroups>
- <!-- pluginGroup
- | Specifies a further group identifier to use for plugin lookup.
- <pluginGroup>com.your.plugins</pluginGroup>
- -->
- </pluginGroups>
-
- <!-- proxies
- | This is a list of proxies which can be used on this machine to connect to
- | the network. Unless otherwise specified (by system property or command-
- | line switch), the first proxy specification in this list marked as active
- | will be used.
- |-->
- <proxies>
- <!-- proxy
- | Specification for one proxy, to be used in connecting to the network.
- |
- <proxy>
- <id>optional</id>
- <active>true</active>
- <protocol>http</protocol>
- <username>proxyuser</username>
- <password>proxypass</password>
- <host>proxy.host.net</host>
- <port>80</port>
- <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
- </proxy>
- -->
- </proxies>
-
- <!-- servers
- | This is a list of authentication profiles, keyed by the server-id used
- | within the system. Authentication profiles can be used whenever maven must
- | make a connection to a remote server.
- |-->
- <servers>
- <!-- server
- | Specifies the authentication information to use when connecting to a
- | particular server, identified by a unique name within the system
- | (referred to by the 'id' attribute below).
- |
- | NOTE: You should either specify username/password OR
- | privateKey/passphrase, since these pairings are used together.
- |
- <server>
- <id>deploymentRepo</id>
- <username>repouser</username>
- <password>repopwd</password>
- </server>
- -->
-
- <!-- Another sample, using keys to authenticate.
- <server>
- <id>siteServer</id>
- <privateKey>/path/to/private/key</privateKey>
- <passphrase>optional; leave empty if not used.</passphrase>
- </server>
- -->
- </servers>
-
- <!-- mirrors
- | This is a list of mirrors to be used in downloading artifacts from remote
- | repositories.
- |
- | It works like this: a POM may declare a repository to use in resolving
- | certain artifacts. However, this repository may have problems with heavy
- | traffic at times, so people have mirrored it to several places.
- |
- | That repository definition will have a unique id, so we can create a
- | mirror reference for that repository, to be used as an alternate download
- | site. The mirror site will be the preferred server for that repository.
- |-->
- <mirrors>
- <!-- mirror
- | Specifies a repository mirror site to use instead of a given repository.
- | The repository that this mirror serves has an ID that matches the
- | mirrorOf element of this mirror. IDs are used for inheritance and direct
- | lookup purposes, and must be unique across the set of mirrors.
- |
- <mirror>
- <id>mirrorId</id>
- <mirrorOf>repositoryId</mirrorOf>
- <name>Human Readable Name for this Mirror.</name>
- <url>http://my.repository.com/repo/path</url>
- </mirror>
- -->
-
- <mirror>
- <id>nexus-aliyun</id>
- <mirrorOf>*</mirrorOf>
- <name>Nexus aliyun</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public</url>
- </mirror>
-
- <!-- profiles
- | This is a list of profiles which can be activated in a variety of ways,
- | and which can modify the build process. Profiles provided in the
- | settings.xml are intended to provide local machine-specific paths and
- | repository locations which allow the build to work in the local
- | environment.
- |
- | For example, if you have an integration testing plugin - like cactus -
- | that needs to know where your Tomcat instance is installed, you can
- | provide a variable here such that the variable is dereferenced during the
- | build process to configure the cactus plugin.
- |
- | As noted above, profiles can be activated in a variety of ways. One
- | way - the activeProfiles section of this document (settings.xml) - will be
- | discussed later. Another way essentially relies on the detection of a
- | system property, either matching a particular value for the property, or
- | merely testing its existence. Profiles can also be activated by JDK
- | version prefix, where a value of '1.4' might activate a profile when the
- | build is executed on a JDK version of '1.4.2_07'. Finally, the list of
- | active profiles can be specified directly from the command line.
- |
- | NOTE: For profiles defined in the settings.xml, you are restricted to
- | specifying only artifact repositories, plugin repositories, and
- | free-form properties to be used as configuration variables for
- | plugins in the POM.
- |
- |-->
-
- <profiles>
- <!-- profile
- | Specifies a set of introductions to the build process, to be activated
- | using one or more of the mechanisms described above. For inheritance
- | purposes, and to activate profiles via <activatedProfiles/> or the
- | command line, profiles have to have an ID that is unique.
- |
- | An encouraged best practice for profile identification is to use a
- | consistent naming convention for profiles, such as 'env-dev',
- | 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc. This
- | will make it more intuitive to understand what the set of introduced
- | profiles is attempting to accomplish, particularly when you only have a
- | list of profile id's for debug.
- |
- | This profile example uses the JDK version to trigger activation, and
- | provides a JDK-specific repo.
- <profile>
- <id>jdk-1.4</id>
- <activation>
- <jdk>1.4</jdk>
- </activation>
- <repositories>
- <repository>
- <id>jdk14</id>
- <name>Repository for JDK 1.4 builds</name>
- <url>http://www.myhost.com/maven/jdk14</url>
- <layout>default</layout>
- <snapshotPolicy>always</snapshotPolicy>
- </repository>
- </repositories>
- </profile>
- -->
-
- <!--
- | Here is another profile, activated by the system property 'target-env'
- | with a value of 'dev', which provides a specific path to the Tomcat
- | instance. To use this, your plugin configuration might hypothetically
- | look like:
- |
- | ...
- | <plugin>
- | <groupId>org.myco.myplugins</groupId>
- | <artifactId>myplugin</artifactId>
- |
- | <configuration>
- | <tomcatLocation>${tomcatPath}</tomcatLocation>
- | </configuration>
- | </plugin>
- | ...
- |
- | NOTE: If you just wanted to inject this configuration whenever someone
- | set 'target-env' to anything, you could just leave off the
- | <value/> inside the activation-property.
- |
- <profile>
- <id>env-dev</id>
- <activation>
- <property>
- <name>target-env</name>
- <value>dev</value>
- </property>
- </activation>
- <properties>
- <tomcatPath>/path/to/tomcat/instance</tomcatPath>
- </properties>
- </profile>
- -->
- </profiles>
-
- <!-- activeProfiles
- | List of profiles that are active for all builds.
- |
- <activeProfiles>
- <activeProfile>alwaysActiveProfile</activeProfile>
- <activeProfile>anotherAlwaysActiveProfile</activeProfile>
- </activeProfiles>
- -->
- </settings>
如何修改成aliyun镜像:

然后去本地仓库把.lastUpdated为后缀的文件删除了;再重新下载依赖;也就那些jar包,解决了吗?并没有,再试一次?去本地仓库把.lastUpdated为后缀的文件删除了,重新导入maven项目;不成啊。最后,我把本地仓库里的jar全删除了,再重新导入项目,重新下载依赖,就成功了。
原因:本地仓库里存有上一个项目所留下jar包,jar版本不同起了冲突,所以有一些jar无法使用,或者是导入项目后加载依赖时出现了jar包破损。(恳请纠正我,我也是百度并自己理解的出来的原因)
如果查看错误,出现不能被读或者它某jar也许是个zip文件这类错误,就是jdk版本太低,去更换一下项目的jdk环境,选择项目属性进行查看并更改
新导入maven项目注解爆红,所有依赖包无法导入
刚开始做maven项目时,导入网上的一个开源spring boot项目结果整体崩掉,所有注解全部报错,进行下载依赖无法下载,idea中点击无反应,搜了一下午的bug也未彻底解决:

经过反复测试终于发现原因所在!!!
是因为本人电脑系统所致,在配置maven环境变量是无法读取引用路径符号%,导致maven没彻底配置成功,即使cmd输入 mvn -v显示没问题
解决步骤如下
在系统变量配置中配置path变量时使用maven安装的bin目录绝对路径即可!!!


此bug可能仅是部分小伙伴的系统会出现,一定记住谨防采坑!!!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue