首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除从spring初学者父级继承的额外依赖项。

移除从spring初学者父级继承的额外依赖项。
EN

Stack Overflow用户
提问于 2015-09-23 12:04:12
回答 1查看 4.8K关注 0票数 3
代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->

当使用spring启动父程序作为父级时,它包含了许多不必要的依赖项。就像我的例子一样,它获取了我不想要的依赖项(spring-移动设备、spring-social-facebook、spring-social-linkedin、org.apache.activemq )。

如果我打开有效的POM(使用get的自动创建),它包含大量我不想要的依赖项。

是否有任何方法来消除项目中没有使用的不必要的依赖关系?是否有识别这种依赖关系的工具?

如有任何帮助,我们将不胜感激:)

谢谢

POM.xml:

代码语言:javascript
复制
<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>demo</groupId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.5.RELEASE</version>
    <relativePath />
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> 
        <version>2.2.4</version>$NO-MVN-MAN-VER$ </dependency> -->
    <!-- <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> 
        <version>1.17.1</version> </dependency> -->
    <!-- <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> 
        <version>4.4.1</version>$NO-MVN-MAN-VER$ </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> 
        <artifactId>httpcore</artifactId> <version>4.4.1</version> </dependency> -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
    </dependency>
    <!-- <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> 
        <version>2.8</version> </dependency> -->
    <!-- <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> 
        <version>3.5.4</version> </dependency> -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>

    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>4.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analyzers-common</artifactId>
        <version>4.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>4.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
</dependencies>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <start-class>demo.Application</start-class>
    <java.version>1.7</java.version>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
<artifactId>DEMO</artifactId>

EN

回答 1

Stack Overflow用户

发布于 2015-09-23 19:35:54

spring-boot-starter-parent不声明任何依赖项。然而,通过spring-boot-dependencies,它确实为广泛的潜在依赖提供了依赖关系管理。

来自Maven文档

依赖性管理部分是一种集中化依赖信息的机制。当您有一组继承公共父级的项目时,就可以在公共POM中放置关于依赖项的所有信息,并且对子POM中的工件有更简单的引用

对工件的引用可以更简单,因为由于依赖关系管理,不需要声明版本。例如:

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    <dependency>
<dependencies>

如果不指定版本,Maven将使用在依赖性管理中配置的版本。

只有当您在pom的<dependencies>部分中添加一个条目时,您的项目才会真正具有该依赖性,并且Maven将作为构建的一部分下载它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32739107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档