maven程序员Java Web

maven---编译Spring上一个RESTful风格的web

2016-12-28  本文已影响244人  zlcook

前言

1.根据介绍编写完代码

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-rest-service</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
</project>

2使用maven构建出现问题

2.1出现问题

1.执行mvn compile出错


第一次执行mvn compile

2.没做任何改动再次请求,还是出错,但是发现问题有变化。


第二次执行mvn compile

2.2原因分析

第一次执行错误原因:之前将本地的所有maven项目都设置访问nexus私服的仓库组maven-pulic,而我的nexus私服所在服务器没有连接网络,也没有为spring远程仓库设置代理仓库。所以请求后下载不到插件,下载失败。
第二次执行错误原因:根据maven仓库更新策略updatePolicy(默认一天),如果你想让maven再次更新构件必须等到更新时间到期,才会继续更新,否则不会更新,直接将上次更新的结果返回给你。即maven没有再次去请求nexus而是缓存了上次错误结果直接返回了。

2.2解决步骤

2.2.1步骤一

1.让 nexus所在服务器连接网络,设置代理仓库代理spirng的远程仓库(https://repo.spring.io/libs-release), 将代理仓库添加到仓库组maven-pulic中。

从项目的pom中可以看出,项目会请求https://repo.spring.io/libs-release 远程仓库,nexus仓库没有配置spring的远程仓库代理,所以就下载不到构件

加入到仓库组

上面步骤设置完后,nexus服务器就可以从spirng仓库中下载需要的插件了。下面的设置让本地的maven连接nexus下载构件。

2.2.1步骤二

仓库构件存放规则groupId/artifactId/version/artifactId-verson.packaging。

下载的构件信息

文件内容如下:

#NOTE: This is an Aether internal implementation file, its format can be changed without prior notice.
#Wed Dec 28 15:36:47 CST 2016
http\://172.19.201.155\:8081/repository/maven-public/.lastUpdated=1482910607287
http\://172.19.201.155\:8081/repository/maven-public/.error=

删掉本地下载失败的构件文件
在执行mvn clean compile

成功

3运行项目

3.1失败(求解)

3.1.1分析


3.2 尝试成功

我把maven的settings.xml的关于nexus的镜像给去了,让项目不通过nexus访问远程仓库。
然后执行如下命令,结果成功。

访问成功

ctr+C结束项目运行

留言

有什么不懂的一起探讨一下吧,欢迎留下宝贵意见,喜欢就点个赞吧(哈哈),多谢鼓励。

上一篇下一篇

猜你喜欢

热点阅读