spring boot pom引用组件的版本问题

litsnake 2017-08-08 09:34:01
首先说明一下是个新手,做个小程序练练手。碰到一下问题请教一下各位:
1.pom.xml 的各种依赖是否需要指定版本,如果指定了各段时间就提示pom.xml出错了(尽管能编译通过),但是pom.xml有红色的叉叉

2.但是如果不指定版本,它总是会自动下载最新版本的jar包,好不容易完成工作了,明天编译可能就通不过了,因为新的jar中有些方法类有了变化,要重新改代码。

请问各位老大,正确的方法应该咋整?

现在工程的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>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>demo</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Kay-BUILD-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.1</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>

<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2.0</version>
</dependency>

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.linuxense</groupId>
<artifactId>javadbf</artifactId>
<version>0.4.0</version>
</dependency>

</dependencies>

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

<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>


</project>



其中有几个地方提示:
1.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>

Duplicating managed version 2.8.1 for gson

2.
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>

Overriding managed version 2.3.0 for quartz

3.
Failure to find org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.BUILD-20170803.204737-855 in https://repo.spring.io/snapshot was cached in the local repository, resolution will not be reattempted until the update interval of spring-snapshots has elapsed or updates are forced

4.
Could not find artifact org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.BUILD-20170803.204737-855 in spring-snapshots (https://repo.spring.io/snapshot)
...全文
1721 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2017-08-09
  • 打赏
  • 举报
回复
引用 3 楼 litsnake 的回复:
[quote=引用 2 楼 yuxiangaaaaa 的回复:] Duplicating managed version 2.8.1 for gson 这个警告是说重复了gson.jar,看看父pom.xml是不是已经定义过了。 Overriding managed version 2.3.0 for quartz 重写了quartz.jar,父pom.xml里已经定义了一个跟这个版本不一样的 Failure to find org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0 这个jar没有找到, 查看一下maven安装目录下是不是没有这个jar Could not find artifact org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.这个jar没有找到, 查看一下maven安装目录下是不是没有这个jar maven\repository\org\springframework\boot目录下是否有这两个jar包??
谢谢兄台,我问问一般在pom.xml中是否需要指定版本?不指定版本,就怕老下载最新的版本,导致代码报错,需要不停修改,请问这个怎么破[/quote] 需要指定版本
litsnake 2017-08-08
  • 打赏
  • 举报
回复
为啥没有人啊,顶一下,高手请出场
八面山人 2017-08-08
  • 打赏
  • 举报
回复
我这有个现成的例子,你可以看看 https://github.com/heikehuan/huanhuan-blog 给几个建议吧: 1 pom的jar版本号,一定要用稳定的release版本。

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.BUILD-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
这里边居然还是SNAPSHOT测试版。

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
     
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
这一段完全多余,你的pom内容应该是从spring的例子代码里copy的吧,这一段是说当获取SNAPSHOT的jar时,从备用的spring的nexu下载jar。 2 多了解一下spring boot的用法,参考http://git.oschina.net/didispace/SpringBoot-Learning
litsnake 2017-08-08
  • 打赏
  • 举报
回复
引用 2 楼 yuxiangaaaaa 的回复:
Duplicating managed version 2.8.1 for gson 这个警告是说重复了gson.jar,看看父pom.xml是不是已经定义过了。 Overriding managed version 2.3.0 for quartz 重写了quartz.jar,父pom.xml里已经定义了一个跟这个版本不一样的 Failure to find org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0 这个jar没有找到, 查看一下maven安装目录下是不是没有这个jar Could not find artifact org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.这个jar没有找到, 查看一下maven安装目录下是不是没有这个jar maven\repository\org\springframework\boot目录下是否有这两个jar包??
谢谢兄台,我问问一般在pom.xml中是否需要指定版本?不指定版本,就怕老下载最新的版本,导致代码报错,需要不停修改,请问这个怎么破
自由自在_Yu 2017-08-08
  • 打赏
  • 举报
回复
Duplicating managed version 2.8.1 for gson 这个警告是说重复了gson.jar,看看父pom.xml是不是已经定义过了。 Overriding managed version 2.3.0 for quartz 重写了quartz.jar,父pom.xml里已经定义了一个跟这个版本不一样的 Failure to find org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0 这个jar没有找到, 查看一下maven安装目录下是不是没有这个jar Could not find artifact org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.这个jar没有找到, 查看一下maven安装目录下是不是没有这个jar maven\repository\org\springframework\boot目录下是否有这两个jar包??

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧