Я довольно новичок в градиенте и хочу создать файл сборки для 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'
}