maven项目创建报错?



maven由于国内的“长城”墙的原因,很多情况下,我们会莫名其妙的发现,一不小心手贱clean install下,发现项目报错了。然后各种折腾,发现还是好不了,报各种Jar找不到。

如果你确认你的maven项目环境没问题,项目也没问题,那么你可以修改maven仓库的下载代理地址。Esy思考者日记网-束洋洋个人博客

在 Maven 中使用 OSChina 的 Maven 服务还需要简单配置一下 Maven,在 Maven 的安装目录下的 conf 文件下有个  settings.xml  文件,接下来我们需要对这个文件做简单的修改,修改前您可以简单备份下该文件。 打开  settings.xml  文件,按下面内容修改。Esy思考者日记网-束洋洋个人博客

<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>nexus-osc</id>  
        <mirrorOf>*</mirrorOf>  
        <name>Nexus osc</name>  
        <url>http://maven.oschina.net/content/groups/public/</url>  
    </mirror>  
  
</mirrors>  

 Esy思考者日记网-束洋洋个人博客

 

补充: 如果还需要osc的thirdparty仓库或多个仓库,需要如下修改:详情 Esy思考者日记网-束洋洋个人博客

<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>nexus-osc</id>  
        <mirrorOf>central</mirrorOf>  
        <name>Nexus osc</name>  
        <url>http://maven.oschina.net/content/groups/public/</url>  
    </mirror>  
    <mirror>  
        <id>nexus-osc-thirdparty</id>  
        <mirrorOf>thirdparty</mirrorOf>  
        <name>Nexus osc thirdparty</name>  
        <url>http://maven.oschina.net/content/repositories/thirdparty/</url>  
    </mirror>  
</mirrors>  

 Esy思考者日记网-束洋洋个人博客

 

这里是配置 Maven 的 mirror 地址指向OSChina 的 Maven 镜像地址。 在执行 Maven 命令的时候, Maven 还需要安装一些插件包,这些插件包的下载地址也让其指向 OSChina 的 Maven 地址。修改如下内容。Esy思考者日记网-束洋洋个人博客

<profile>  
                <id>jdk-1.4</id>  
              
                <activation>  
                    <jdk>1.4</jdk>  
                </activation>  
              
                <repositories>  
                    <repository>  
                        <id>nexus</id>  
                        <name>local private nexus</name>  
                        <url>http://maven.oschina.net/content/groups/public/</url>  
                        <releases>  
                            <enabled>true</enabled>  
                        </releases>  
                        <snapshots>  
                            <enabled>false</enabled>  
                        </snapshots>  
                    </repository>  
                </repositories>  
                <pluginRepositories>  
                    <pluginRepository>  
                        <id>nexus</id>  
                        <name>local private nexus</name>  
                        <url>http://maven.oschina.net/content/groups/public/</url>  
                        <releases>  
                            <enabled>true</enabled>  
                        </releases>  
                        <snapshots>  
                            <enabled>false</enabled>  
                        </snapshots>  
                    </pluginRepository>  
                </pluginRepositories>  
            </profile>  

 Esy思考者日记网-束洋洋个人博客

 

如果您需要修改 Maven 的默认文件保存路径,需要在 settings.xml 文件中修改如下地方。Esy思考者日记网-束洋洋个人博客

<localRepository>${M2_HOME}/repository</localRepository>

 Esy思考者日记网-束洋洋个人博客

按照如上修改  settings.xml  之后,您就可以在自己的 Maven 中使用 OSChina 为您提供的 Maven 服务了。Esy思考者日记网-束洋洋个人博客

贴出我的全部XML:Esy思考者日记网-束洋洋个人博客

<?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: ${user.home}/.m2/repository   
    -->  
        <localRepository>${M2_HOME}/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>  
            <id>optional</id>  
            <active>true</active>  
            <protocol>http</protocol>  
            <host>127.0.0.1</host>  
            <port>8087</port>  
        </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>nexus-osc</id>  
            <mirrorOf>*</mirrorOf>  
            <name>Nexus osc</name>  
            <url>http://maven.oschina.net/content/groups/public/</url>  
        </mirror>  
  
    </mirrors>  
  
    <!-- 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>nexus</id>  
                    <name>local private nexus</name>  
                    <url>http://maven.oschina.net/content/groups/public/</url>  
                    <releases>  
                        <enabled>true</enabled>  
                    </releases>  
                    <snapshots>  
                        <enabled>false</enabled>  
                    </snapshots>  
                </repository>  
            </repositories>  
            <pluginRepositories>  
                <pluginRepository>  
                    <id>nexus</id>  
                    <name>local private nexus</name>  
                    <url>http://maven.oschina.net/content/groups/public/</url>  
                    <releases>  
                        <enabled>true</enabled>  
                    </releases>  
                    <snapshots>  
                        <enabled>false</enabled>  
                    </snapshots>  
                </pluginRepository>  
            </pluginRepositories>  
        </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>

 Esy思考者日记网-束洋洋个人博客

 

一切就绪后,clean install -->update maven poject试试看是不是已经ok。Esy思考者日记网-束洋洋个人博客

 

(转载本站文章请注明作者和出处 思考者日记网|束洋洋个人博客 ,请勿用于任何商业用途)

『访问 思考者日记网404页面 寻找遗失儿童』

告知
  •     本站90%以上文章均属原创,部分转载已加上原作者出处。 如需转载本站文章请您务必保留本站出处!
  •     打广告评论者请自重,请为广大网友提供一个健康干净的网络空间。
  •  感谢主机屋提供网站空间;
  •  感谢万网阿里云提供域名解析;
  •  感谢EmpireCMS提供CMS系统;
  •  感谢bootstrap展示本站前端页面;
  •  感谢Glyphicons Halflings提供字体;
  •  感谢大家一直以来对本站的喜爱,感谢大家!
近期文章 建议与反馈