2016-07-06 4 views
0

Я довольно новичок в градиенте и хочу создать файл сборки для REST-сервиса. После того, как я прочитал введение на главной странице gradle и некоторых других страницах, я начал новый проект, используя команду gradle init --type=java-project, потому что моя служба основана на Java. Структура проекта была создана, и я хотел вставить мои файлы .class в каталоги. Это моя первая проблема: я не знаю правильной структуры для такого проекта. После этого я сосредоточился на моих зависимостях, которые я добавил. Как только я хочу построить свой проект, возникает ошибка, связанная с использованием трикотажа в качестве технологии. Если я скомпилирую свою службу с помощью eclipse, она отлично работает, поэтому мой код работает.Создание файла Gradle для REST-Web Service

Так мои 2 вопроса:

Как создать правильную структуру файла?

Как решить проблему с Servlet/WAR-компиляции


Вот структура моего проекта в затмении:

RestWebService 
|--Java Resources 
| |--src 
|  |--com.name.restproject.rest 
|  | |--WebController.java   //contains the jersey REST service 
|  |--com.name.restproject.service 
|  |--ServiceUtil.java   //contains some util methods 
|--Libraries 
| |--Apache Tomcat v7 
| |--asm-3.3.1.jar 
| |--EAR Libraries 
| |--gson-2.5.jar 
| |--jersey-bundle-1.14.jar 
| |--JRE SYSTEM Library 
| |--json-20151123.jar 
| |--Web App Libraries 
|--JavaScript Resources 
|--build 
|--WebContent 
    |--META-INF 
    | |--MANIFEST.MF 
    |--WEB-INF 
     |--lib 
     |--fileName.properties   //File with Data for ServiceUtil.java 
     |--configFile.xml    //File with Confc for ServiceUtil.java 
     |--web.xml      //Config for the REST paths 

У меня нет никакого плана, где разместить два файла из каталога WEB-INF. Я поместил структуру под projectfolder /src/main/java/com/name/restproject

Вот Gradle файл проекта

build.gradle

apply plugin: 'java' 
apply plugin: 'war' 

// In this section you declare where to find the dependencies of your project 
repositories { 
    // Use 'jcenter' for resolving your dependencies. 
    // You can declare any Maven/Ivy/file repository here. 
    mavenCentral() 
} 

// In this section you declare the dependencies for your production and test code 
dependencies { 
    // The production code uses the SLF4J logging API at compile time 
    compile group: 'com.google.code.gson', name: 'gson-parent', version: '2.6' 
    compile group: 'asm', name: 'asm-parent', version: '3.3.1' 
    compile group: 'com.sun.jersey.glassfish.v3.osgi', name: 'jersey-gf-bundle', version: '1.1.4' 
    compile group: 'org.json', name: 'json', version: '20151123' 


    // Declare the dependency for your favourite test framework you want to use in your tests. 
    // TestNG is also supported by the Gradle Test task. Just change the 
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add 
    // 'test.useTestNG()' to your build script. 
    testCompile 'junit:junit:4.12' 
} 

ответ

0

Если вы хотите создать REST веб-службы с Gradle построить , Я предлагаю вам использовать Spring Boot REST

Весенний ботинок - создание веб-сервиса RESTful:http://spring.io/guides/gs/rest-service/

Он уже содержит Gradle сборки: https://github.com/spring-guides/gs-rest-service/blob/master/initial/build.gradle

Кроме того, если вы хотите построить WAR вместо JAR (который является конфигурация сборки по умолчанию), вы можете следовать этой документации: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-packaging

Смежные вопросы