Весна с мавеном

Весна с мавеном

1. обзор

В этом руководстве показано, как настроитьthe Spring dependencies via Maven. Последние выпуски Spring можно найти наon Maven Central.

2. Базовые зависимости Spring с Maven

Spring спроектирован так, чтобы быть очень модульным - использование одной части Spring не должно и не требует другой. Например, базовый Spring Context может быть без библиотек Persistence или MVC Spring.

Начнем с фундаментальногоMaven setup, которое будет использовать толькоthe spring-context dependency:


    3.2.8.RELEASE
    


    org.springframework
    spring-context
    ${org.springframework.version}
    runtime

Эта зависимость -spring-context - определяет фактический Spring Injection Container и имеет небольшое количество зависимостей:spring-core,spring-expression,spring-aop иspring-beans. Они дополняют контейнер, обеспечивая поддержку некоторых изcore Spring technologies: утилит Core Spring,Spring Expression Language (SpEL), поддержкиAspect Oriented Programming иJavaBeans mechanism.

Обратите внимание, что мы определяем зависимость вruntime scope - это обеспечит отсутствие зависимостей времени компиляции для каких-либо конкретных API-интерфейсов Spring. Для более сложных случаев использования областьruntime может быть удалена из некоторых выбранных зависимостей Spring, но для более простых проектов существуетno need to compile against Spring, чтобы полностью использовать фреймворк.

Также обратите внимание, что начиная с Spring 3.2there is no need to define the CGLIB dependency (теперь обновлен до CGLIB 3.0) - он был переупакован (пакет allnet.sf.cglib теперьorg.springframework.cglib) и встроен непосредственно в ядро ​​Spring JAR (дополнительные сведения см. Вthe JIRA).

3. Spring Persistence с Maven

Теперь посмотрим наthe persistence Spring dependencies - в основномspring-orm:


    org.springframework
    spring-orm
    ${org.springframework.version}

Он поставляется с поддержкой Hibernate и JPA, напримерHibernateTemplate иJpaTemplate, а также с несколькими дополнительными зависимостями, связанными с постоянством:spring-jdbc иspring-tx.

Библиотека доступа к данным JDBC определяетSpring JDBC support, а такжеJdbcTemplate, аspring-tx представляет собой чрезвычайно гибкийTransaction Management Abstraction.

4. Spring MVC с Maven

Чтобы использовать поддержку Spring Web и сервлетов, вpom должны быть включены две зависимости, опять же в дополнение к основным зависимостям, указанным выше:


    org.springframework
    spring-web
    ${org.springframework.version}


    org.springframework
    spring-webmvc
    ${org.springframework.version}

Зависимостьspring-web содержит общие веб-утилиты для сред сервлетов и портлетов, аspring-webmvc enables the MVC support - для сред сервлетов.

Посколькуspring-webmvc имеетspring-web в качестве зависимости, явное определениеspring-web не требуется при использованииspring-webmvc.

5. Spring Security с Maven

Security Maven dependencies подробно обсуждается в статьеSpring Security with Maven.

6. Весенний тест с Maven

Spring Test Framework может быть включен в проект через следующую зависимость:


    org.springframework
    spring-test
    ${spring.version}
    test

Начиная с Spring 3.2, проект Spring MVC Test был включен в ядро ​​Test Framework, поэтому включения зависимостиspring-test достаточно.

7. Использование вех

Релизная версия Spring размещена на Maven Central. Однако, если проекту необходимо использовать версии-этапы, в pom необходимо добавить собственный репозиторий Spring:


    
        repository.springframework.maven.milestone
        Spring Framework Maven Milestone Repository
        http://repo.spring.io/milestone/
    

После определения этого репозитория проект может определять зависимости, такие как:


    org.springframework
    spring-core
    3.2.0.RC2

8. Использование снимков

Как и вехи, снимки размещаются в пользовательском хранилище:


    
        repository.springframework.maven.snapshot
        Spring Framework Maven Snapshot Repository
        http://repo.spring.io/snapshot/
    

После включения репозитория SNAPSHOT в файл pom.xml можно ссылаться на следующие зависимости:


    org.springframework
    spring-core
    3.3.0.BUILD-SNAPSHOT

А также - для 4.x:


    org.springframework
    spring-core
    4.0.3.BUILD-SNAPSHOT

9. Заключение

В этой статье обсуждаются практические детали использованияSpring with Maven. Зависимости Maven, представленные здесь, являются, конечно, одними из основных, и некоторые другие, возможно, заслуживают упоминания и еще не сделали сокращения. Тем не менее, это должно стать хорошей отправной точкой для использования Spring в проекте.