it-swarm.com.de

Welche Maven-Abhängigkeiten sollten für Frühjahr 3.0 enthalten sein?

Ich versuche mein erstes Projekt mit Spring 3.0 (und Maven) zu machen. Ich habe Spring 2.5 (und Primer-Versionen) in einigen Projekten verwendet. Trotzdem bin ich etwas verwirrt, welche Module ich als Abhängigkeiten in meiner pom.xml definieren muss. Ich möchte nur die Core-Container-Funktionen (Beans, Core, Context, el) verwenden.

Ich war es gewöhnt:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.6</version>
</dependency>

Aber jetzt bin ich irgendwie verwirrt, da es in Version 3.0 kein volles Federmodul mehr gibt. Ich habe folgendes versucht, aber es hat nicht funktioniert (einige Klassen fehlen).

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>3.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.0.0.RELEASE</version>
    </dependency>

Jede Hilfe wäre dankbar!

113
Nils Schmidt

Es gab einen wirklich netten Beitrag im Spring Blog von Keith Donald, in dem das Howto Erhalten Sie Spring 3 Aritfacts with Maven beschrieben ist.

<!-- Shared version number properties -->
<properties>
    <org.springframework.version>3.0.0.RELEASE</org.springframework.version>
</properties>
<!-- Core utilities used by other modules.
    Define this if you use Spring Utility APIs 
    (org.springframework.core.*/org.springframework.util.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Expression Language (depends on spring-core)
    Define this if you use Spring Expression APIs 
    (org.springframework.expression.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Bean Factory and JavaBeans utilities (depends on spring-core)
    Define this if you use Spring Bean APIs 
    (org.springframework.beans.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Aspect Oriented Programming (AOP) Framework 
    (depends on spring-core, spring-beans)
    Define this if you use Spring AOP APIs 
    (org.springframework.aop.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Application Context 
    (depends on spring-core, spring-expression, spring-aop, spring-beans)
    This is the central artifact for Spring's Dependency Injection Container
    and is generally always defined-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Various Application Context utilities, including EhCache, JavaMail, Quartz, 
    and Freemarker integration
    Define this if you need any of these integrations-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Transaction Management Abstraction 
    (depends on spring-core, spring-beans, spring-aop, spring-context)
    Define this if you use Spring Transactions or DAO Exception Hierarchy
    (org.springframework.transaction.*/org.springframework.dao.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- JDBC Data Access Library 
    (depends on spring-core, spring-beans, spring-context, spring-tx)
    Define this if you use Spring's JdbcTemplate API 
    (org.springframework.jdbc.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Object-to-Relation-Mapping (ORM) integration with Hibernate, JPA and iBatis.
    (depends on spring-core, spring-beans, spring-context, spring-tx)
    Define this if you need ORM (org.springframework.orm.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Object-to-XML Mapping (OXM) abstraction and integration with JAXB, JiBX, 
    Castor, XStream, and XML Beans.
    (depends on spring-core, spring-beans, spring-context)
    Define this if you need OXM (org.springframework.oxm.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-oxm</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Web application development utilities applicable to both Servlet and 
    Portlet Environments 
    (depends on spring-core, spring-beans, spring-context)
    Define this if you use Spring MVC, or wish to use Struts, JSF, or another
    web framework with Spring (org.springframework.web.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Spring MVC for Servlet Environments 
    (depends on spring-core, spring-beans, spring-context, spring-web)
    Define this if you use Spring MVC with a Servlet Container such as 
    Apache Tomcat (org.springframework.web.servlet.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Spring MVC for Portlet Environments 
    (depends on spring-core, spring-beans, spring-context, spring-web)
    Define this if you use Spring MVC with a Portlet Container 
    (org.springframework.web.portlet.*)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc-portlet</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<!-- Support for testing Spring applications with tools such as JUnit and TestNG
    This artifact is generally always defined with a 'test' scope for the 
    integration testing framework and unit testing stubs-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework.version}</version>
    <scope>test</scope>
</dependency>
222
Tim

Spring (heute) macht es einfach, Spring zu einem Projekt hinzuzufügen, indem nur eine Abhängigkeit verwendet wird, z.

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>3.1.2.RELEASE</version>
</dependency> 

Dies wird zu lösen

[INFO] The following files have been resolved:
[INFO]    aopalliance:aopalliance:jar:1.0:compile
[INFO]    commons-logging:commons-logging:jar:1.1.1:compile
[INFO]    org.springframework:spring-aop:jar:3.1.2.RELEASE:compile
[INFO]    org.springframework:spring-asm:jar:3.1.2.RELEASE:compile
[INFO]    org.springframework:spring-beans:jar:3.1.2.RELEASE:compile
[INFO]    org.springframework:spring-context:jar:3.1.2.RELEASE:compile
[INFO]    org.springframework:spring-core:jar:3.1.2.RELEASE:compile
[INFO]    org.springframework:spring-expression:jar:3.1.2.RELEASE:compile

Weitere Informationen finden Sie auf der Spring Framework-Dokumentation .

30
FrVaBe
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.0.0.RELEASE</version>
</dependency>
3
Ihor Kostenko

Da diese Fragen immer noch recht viele Ansichten zu bieten scheinen, ist es möglicherweise hilfreich zu wissen, dass es für Spring 4+ am einfachsten ist, Spring Boot und die Spring Boot Starter-POMs zu verwenden.

Mit Spring Boot müssen weniger Abhängigkeiten verwaltet werden (und damit weniger Konflikte). Das Einrichten eines funktionierenden, gut integrierten Spring Context ist um einiges einfacher. Ich empfehle es sehr.

2
Tim

Welche Klassen fehlen? Der Klassenname selbst sollte ein guter Hinweis auf das fehlende Modul sein.

Zu Ihrer Information, ich weiß, dass es wirklich praktisch ist, das Uber Spring-Glas einzubauen, was jedoch Probleme verursacht, wenn es in andere Projekte integriert wird. Ein Vorteil des Abhängigkeitssystems ist, dass Versionskonflikte zwischen den Abhängigkeiten gelöst werden.

Wenn meine Bibliothek von Spring-Core abhängt: 2.5 und Sie von meiner Library und Uber-Spring: 3.0 abhängen, haben Sie jetzt 2 Versionen von Spring auf Ihrem Klassenpfad.

Sie können dies mit Ausnahmen umgehen, aber es ist viel einfacher, die Abhängigkeiten richtig aufzulisten und sich nicht darum kümmern zu müssen.

1
Kevin

Verwenden Sie eine Stückliste, um Versionsprobleme zu lösen.

möglicherweise stellen Sie fest, dass eine Bibliothek eines Drittanbieters oder ein anderes Spring-Projekt eine vorübergehende Abhängigkeit von einer älteren Version aufweist. Wenn Sie vergessen, eine direkte Abhängigkeit ausdrücklich selbst zu deklarieren, können alle möglichen unerwarteten Probleme auftreten.

Um diese Probleme zu lösen, unterstützt Maven das Konzept einer Stücklistenabhängigkeit.

https://docs.spring.io/spring/docs/4.3.18.RELEASE/spring-framework-reference/html/overview.html#overview-maven-bom

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-framework-bom</artifactId>
  <version>3.2.12.RELEASE</version>
  <type>pom</type>
</dependency>
0
Philip Rego

Sie können es versuchen

<dependencies>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.1.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.1.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.1.0.RELEASE</version>
    </dependency>
</dependencies>`
0
Ritesh Kumar

Sie können die Abhängigkeit von spring-context für Frühlingsgläser hinzufügen. Sie erhalten die folgenden Gläser mit. 

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>

 Spring context dependencies

wenn Sie auch Webkomponenten wünschen, können Sie die Abhängigkeit von spring-webmvc verwenden.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>

 Spring webmvc dependencies

Sie können jede Version verwenden, die Sie möchten. Ich habe 5.0.5.RELEASE hier verwendet.

0
Ram Sharma