वसंत के लिए 3.0 में कौन सी मावेन निर्भरता शामिल है?


114

मैं अपना पहला प्रोजेक्ट स्प्रिंग 3.0 (और मावेन) के साथ करने की कोशिश कर रहा हूं। मैं काफी कुछ परियोजनाओं में स्प्रिंग 2.5 (और प्राइमर संस्करण) का उपयोग कर रहा हूं। फिर भी मैं थोड़े उलझन में हूं, मुझे अपने pom.xml में निर्भरता के रूप में कौन से मॉड्यूल को परिभाषित करना है। मैं बस कोर कंटेनर फ़ंक्शंस (सेम, कोर, संदर्भ, एल) का उपयोग करना चाहता हूं।

मैं यह करने के लिए इस्तेमाल किया गया था:

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

लेकिन अब मैं थोड़े उलझन में हूं, क्योंकि अब संस्करण 3.0 के लिए कोई पूर्ण पैक स्प्रिंग मॉड्यूल नहीं है। मैंने निम्नलिखित की कोशिश की, लेकिन यह काम नहीं किया (कुछ कक्षाएं गायब हैं)।

    <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>

किसी भी सहायता की सराहना की जाएगी!


यह वास्तव में दूसरे कोड उदाहरण में निर्दिष्ट के रूप में काम करता है। मैं कुछ अन्य मुद्दों से भ्रमित हो गया। अनावश्यक प्रश्न के लिए क्षमा करें। मैं प्रश्न को वैसे भी रखने की सलाह दूंगा, क्योंकि शायद लोगों को 2.5 से 3.0 तक स्विच करने में समान समस्या होगी।
निल्स श्मिट

जवाबों:


227

कीथ डोनाल्ड से स्प्रिंग ब्लॉग पर वास्तव में एक अच्छी पोस्ट थी जिसमें मावेन के साथ स्प्रिंग 3 अरीटफैक्ट्स का विवरण दिया गया था, जब आप प्रत्येक निर्भरता की आवश्यकता होगी, तो टिप्पणी के साथ विस्तार करें।

<!-- 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>

3
धन्यवाद, वास्तव में इसे फिर से देखना था, जैसा कि मैंने पाया और कुछ दिनों पहले लिंक खो दिया था .. यहाँ होने का मतलब है कि यह शायद स्प्रिंग ब्लॉग की तुलना में लोगों के लिए ढूंढना आसान है ..
टिम


29

स्प्रिंग (आजकल) सिर्फ एक निर्भरता का उपयोग करके किसी प्रोजेक्ट में स्प्रिंग को जोड़ना आसान बनाता है, जैसे

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

इसका समाधान होगा

[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

अधिक जानकारी के लिए स्प्रिंग फ्रेमवर्क प्रलेखन पृष्ठ पर एक नज़र डालें ।


प्रॉब्लम हो सकती है अगर आपके पास प्रोजेक्ट में स्प्रिंग सिक्योरिटी हो, क्योंकि मैवेन डिपेंडेंसी रेजोल्यूशन के काम करने का तरीका (सबसे छोटा रास्ता) - मावेन आर्टिकल के साथ मेरा स्प्रिंग सिक्योरिटी चेक करें
यूजेन

1
@ अच्छी बात है। इस मामले में यह सिर्फ वसंत-सुरक्षा कलाकृतियों को घोषित करने के लिए बेहतर होगा जो समर्थित "स्प्रिंग-कोर" कलाकृतियों को सही संस्करणों के साथ हल करते हैं (दुर्भाग्य से नवीनतम स्थिर संस्करण नहीं हैं)।
FrVaBe


2

चूँकि यह प्रश्न अभी भी काफी देखने को मिलता है, इसलिए यह ध्यान रखना उपयोगी हो सकता है कि स्प्रिंग 4+ के लिए इसका उपयोग करना आसान है Spring Bootऔर स्प्रिंग बूट स्टार्टर पीओएम

स्प्रिंग बूट का उपयोग करने के लिए (और इस प्रकार कम संघर्ष) का प्रबंधन करने के लिए कम निर्भरताएं हैं, और एक काम स्थापित करना, अच्छी तरह से एकीकृत स्प्रिंग संदर्भ एक बहुत आसान है। मैं इसकी पुरजोर सलाह देता हूँ।


1

कौन सी कक्षाएं छूट रही हैं? कक्षा का नाम ही लापता मॉड्यूल का एक अच्छा सुराग होना चाहिए।

FYI करें, मुझे पता है कि uber स्प्रिंग जार को शामिल करना वास्तव में सुविधाजनक है, लेकिन यह वास्तव में अन्य परियोजनाओं के साथ एकीकरण करते समय समस्या का कारण बनता है। निर्भरता प्रणाली के पीछे एक लाभ यह है कि यह निर्भरता के बीच संस्करण के संघर्ष को हल करेगा।

यदि मेरी लाइब्रेरी स्प्रिंग-कोर: 2.5 पर निर्भर करती है और आप मेरी लाइब्रेरी और यूबर-स्प्रिंग: 3.0 पर निर्भर करते हैं, तो आपके पास अब आपके क्लासपथ पर वसंत के 2 संस्करण हैं।

आप इसे बहिष्करण के साथ प्राप्त कर सकते हैं लेकिन निर्भरता को सही ढंग से सूचीबद्ध करने के लिए इसकी बहुत आसान है और इसके बारे में चिंता करने की ज़रूरत नहीं है।


1

आप वसंत जार के लिए वसंत -संदर्भ निर्भरता जोड़ सकते हैं । आपको इसके साथ निम्नलिखित जार मिलेंगे।

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

वसंत संदर्भ निर्भरताएँ

यदि आप वेब घटक भी चाहते हैं, तो आप स्प्रिंग-वेबमिक्स निर्भरता का उपयोग कर सकते हैं ।

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

स्प्रिंग वेबमेक निर्भरताएँ

आप जो चाहें उसका वर्जन इस्तेमाल कर सकते हैं। मैंने यहाँ 5.0.5 का उपयोग किया है।


0

आप यह कोशिश कर सकते हैं

<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

संस्करण समस्याओं को हल करने के लिए BOM का उपयोग करें।

आप पा सकते हैं कि एक तृतीय-पक्ष पुस्तकालय, या एक अन्य स्प्रिंग प्रोजेक्ट, एक पुराने रिलीज के लिए एक सकर्मक निर्भरता में खींचता है। यदि आप स्पष्ट रूप से प्रत्यक्ष निर्भरता की घोषणा करना भूल जाते हैं, तो सभी प्रकार के अप्रत्याशित मुद्दे पैदा हो सकते हैं।

ऐसी समस्याओं को दूर करने के लिए मावेन "सामग्री के बिल" (बीओएम) निर्भरता की अवधारणा का समर्थन करता है।

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>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.