2010-02-10 15 views
111

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

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

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

किसी भी मदद की सराहना की जाएगी!

+0

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

उत्तर

218

कीथ डोनाल्ड से Spring Blog howto Obtain Spring 3 Aritfacts with Maven का ब्यौरा पर वास्तव में एक अच्छा पोस्ट, टिप्पणी का ब्यौरा जब आप निर्भरता से प्रत्येक आवश्यकता होगी के साथ हुई थी ...

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

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

+0

और वसंत 4 के लिए [स्प्रिंग बूट पर स्विच करने पर विचार करें] (http://stackoverflow.com/a/30644556/53444) – Tim

1

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

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

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

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

2
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>3.0.0.RELEASE</version> 
</dependency> 
27

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

<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 

अधिक जानकारी के लिए Spring Framework documentation पेज पर एक नज़र डालें होगा। चूंकि यह सवाल अभी भी काफी विचारों का एक बहुत कुछ प्राप्त करने के लिए लगता है

+0

यदि आपके पास परियोजना में स्प्रिंग सिक्योरिटी भी है, तो मैवेन निर्भरता के तरीके के कारण यह दृष्टिकोण समस्याग्रस्त हो सकता है रिज़ॉल्यूशन काम करता है (सबसे छोटा रास्ता) - मेरी [स्प्रिंग सिक्योरिटी के साथ मेवेन] देखें (http://www.baeldung.com/spring-security-with-maven) आलेख – Eugen

+1

@ यूजीन अच्छा बिंदु। इस मामले में [वसंत-सुरक्षा कलाकृतियों] (http://www.springsource.org/spring-security#documentation) घोषित करने के लिए यह बेहतर होगा कि सही संस्करणों के साथ समर्थित "वसंत-कोर" कलाकृतियों को हल करें (दुर्भाग्य से नवीनतम स्थिर संस्करण नहीं)। – FrVaBe

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

कोशिश कर सकते हैं, यह नोट करना वसंत के लिए है कि उपयोगी हो सकता है 4 यह Spring Boot और Spring Boot starter POMs का उपयोग शुरू करने के लिए सबसे आसान है।

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

संबंधित मुद्दे