Думаю все уже знают, что такое Maven и для чего его используют, так вот сегодня я хочу вас познакомить с другим инструментом, который называется Gradle. Это похожий инструмент сборки проектов но немного отличающийся от Maven.
Wiki – Краткое введение
В первую очередь хочу сказать, что Gradle попытался объединить в себе все плюсы Ant, Maven. Диалект специально разработан для описания сборки, тестирования, развертывания, экспорта и любых других действий над проектом, которые только могут прийти вам в голову. Так же Gradle использует Groovy диалект, что дает очень удобное использование.
В принципе, несложно интегрировать в сборку любой инструмент, работающий в jvm. В придачу ко всему, диалект Groovy, используемый в Gradle, дает вам полную свободу действий. Например, если мы хотим условные выражения или циклы, то не составит труда это сделать. Или же вам нужно читать и писать файлы, работать с сетью, генерировать на лету собственные задачи. Все что угодно!
И большой плюс в том что все это вы делаете на языке программирования а не в XML формате. Я думаю, что это просто офигенно!
Очередной плюс: соответствующим образом настроенный Gradle-проект можно собрать на любой машине пользователя, на которой Gradle не установлен. Для того, чтобы это реализовать достаточно положить в дерево исходников 4 файла, которые Gradle сгенерирует для вас: 2 исполняемых для Win/Linux, 1 файл настроек и один jar файл. После этого проект можно собрать на любой машине, где есть доступ к Сети. Скрипт сам позаботится о скачивании правильной версии Gradle, о настройке и запуске сборки.
Шаг 1
Скачиваем Gradle с http://www.gradle.org/downloads [gradle-1.7-bin.zip (binaries only)]
Теперь создам просто Spring MVC Maven проект, да именно его, вы не ослышались. Почему Maven? Я хочу вам показать как эмигрировать с Maven на Gradle.
Теперь мы создали стартовый проект, пришло время перевести его на Gradle.
Структура текущего проекта:
Шаг 2
Давайте рассмотрим содержимое проекта.
Файл: HelloController.java
package com.devcolibri.mvc; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/") public class HelloController { @RequestMapping(method = RequestMethod.GET) public String printWelcome(ModelMap model) { model.addAttribute("message", "Hello world!"); return "hello"; } }
Файл: Hello.jsp
<html> <body> <h1>${message}</h1> </body> </html>
Файл: mvc-dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.devcolibri.mvc"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
Файл: web.xml
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
Файл: pom.xml
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.springapp</groupId> <artifactId>SpringMVCandGradle</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>SpringMVCandGradle</name> <properties> <spring.version>3.2.0.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <build> <finalName>SpringMVCandGradle</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
Шаг 3
Теперь создаем в корне проекта файл build.gradle:
apply plugin: 'war' repositories { mavenCentral() } dependencies { providedCompile 'javax.servlet:servlet-api:2.5' providedCompile 'javax.servlet.jsp:jsp-api:2.1' compile 'org.springframework:spring-webmvc:3.2.2.RELEASE' compile 'org.springframework:spring-core:3.2.2.RELEASE' compile 'org.springframework:spring-web:3.2.2.RELEASE' compile 'org.springframework:spring-core:3.2.2.RELEASE' runtime 'javax.servlet:jstl:1.1.2' }
После того как мы настроили gradle можно удалить pom.xml. Структура проекта:
Шаг 4
Теперь давайте в Intellij IDEA настроим Gradle, как вы помните на самом начале мы уже скачали Gradle, теперь распакуйте в удобное для вас место и выполните следующие действия:
После в появившемся окне выберете свой проект:
Теперь нужно зайти в File -> Settings -> Gradle:
На этом этап настройки закончен.
Шаг 5
Теперь пробуем собрать приложение:
В результате в консоли вы получите:
:compileJava :processResources UP-TO-DATE :classes :war BUILD SUCCESSFUL
И в build\libs будет лежать ваш war.
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
4 комментариев к статье "Spring MVC с использованием Gradle"