2015-04-08 1 views
4

У меня есть существующий java-динамический веб-проект, который я создал с помощью eclipse. Обычно я просто создаю файл войны через eclipse, а затем развертываю его в tomcat.Миграция из существующего динамического веб-проекта в gradle

Теперь я хочу использовать Gradle для создания моего проекта и создания военного файла. Есть ли плагин eclipse для этого? Если нет, то как я могу использовать gradle с моим существующим проектом? Моя существующая структура проекта - это то, что вы получаете при создании динамического веб-проекта через eclipse, и я не хочу его менять.

Я попытался пройти учебники и использовать преобразование в проект Gradle с помощью плагина gradle. Может ли кто-нибудь по крайней мере указать на блог или учебник или способ начать работу?

MyProject 
    |java resources 
    |--src 
    |-- -- packages 
    |-- -- .properties files 
    |--test 
    |-- -- packages 
    |build 
    |-- classes 
    |WebContent 
    |-- MetaINF 
    |-- WEB-INF 
    |-- -- lib // all my libraries are here. there is no specific repo for now 
    |-- -- web.xml 

Мой build.gradle:

apply plugin: 'java' 
apply plugin: 'eclipse-wtp' 
apply plugin: 'war' 


sourceCompatibility = 1.7 
targetCompatibility = 1.7 


version = '2.0' 

war { 

baseName = 'Gradle' 
version = '1.2' 
} 
repositories { 
mavenCentral() 
} 

repositories { 
flatDir { 
    dirs 'lib' 
    } 
} 

dependencies { 
compile group: 'commons-collections', name: 'commons-collections', version: '3.2' 
testCompile group: 'junit', name: 'junit', version: '4.+' 

compile files('./lib/myjar.jar')  
compile 'commons-codec:commons-codec:1.5' 

compile 'commons-lang:commons-lang:2.6' 
compile 'org.hibernate:hibernate-entitymanager:4.3.8.Final' 
compile 'org.apache.axis2:axis2-kernel:1.6.2' 
compile 'org.apache.axis2:axis2-adb:1.6.2' 
compile 'com.sun.jersey:jersey-server:1.19' 
compile 'com.sun.jersey:jersey-client:1.19' 
compile 'log4j:log4j:1.2.17' 
compile 'org.apache.axis2:axis2-transport-local:1.6.2' 
compile 'org.apache.axis2:axis2-transport-http:1.6.2' 
providedCompile 'javax.servlet:servlet-api:2.3' 



testCompile 'junit:junit:4.9' 
testCompile 'org.jmock:jmock:2.6.0' 
testCompile 'org.jmock:jmock-junit4:2.6.0' 
testCompile 'org.jmock:jmock-legacy:2.6.0' 



} 

test { 
systemProperties 'property': 'value' 
} 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<display-name>Gradle</display-name> 
<servlet> 
    <servlet-name>HTTP REST Service</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    //in the above line It is showing a warning: servlet-class references to non-existent class "com.sun.jersey.spi.container.servlet.ServletContainer" 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>org.gradle</param-value> 
    </init-param> 

    <load-on-startup>1</load-on-startup> 


</servlet> 
<servlet-mapping> 
    <servlet-name>HTTP REST Service</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Моя структура проектируемый Project Structure

+0

Можете ли вы описать компоновку исходных файлов более подробно? – dnault

+0

В частности, где живет ваш статический веб-контент? Где исходный код Java? Ресурсы, такие как файлы * .properties, хранятся в отдельном каталоге или в том же каталоге, что и источник Java? Где файл web.xml? Зависит ли ваш проект от других JAR, и если они доступны в репозитории артефактов или они доступны только в локальной файловой системе? – dnault

+0

проверьте пожалуйста. Я обновил свой вопрос с помощью структуры dir, а также мой проект зависит от другого проекта, а jar также находится в папке lib. – Jenny

ответ

4

Вот минимальный файл build.gradle, который должен вас поймать. Постройте с помощью команды gradle war.

apply plugin: 'war' 

// See http://gradle.org/docs/current/userguide/war_plugin.html 
// Section 26.5. Convention properties 
webAppDirName = 'WebContent' 

// See http://gradle.org/docs/current/userguide/java_plugin.html 
// Section 23.4.1. Changing the project layout 
sourceSets { 
    main { 
     // where does the Java source code live? 
     java { 
      srcDir 'Java Resources/src' 
     } 

     // where do classpath resources like *.properties files live? 
     resources { 
      srcDir 'Java Resources/src' 
     } 
    } 
} 

// See http://gradle.org/docs/current/userguide/dependency_management.html 
// Section 51.4.4. File dependencies 
dependencies { 
    // Where do the JARs live on the filesystem? 
    compile fileTree(dir: "${webAppDirName}/WEB-INF/lib", include: '*.jar') 
} 
+0

Привет, спасибо. Но я начал строить проект с нуля ... Теперь я добавил все зависимости и репозиторий как mavenCentral(). Теперь проблема только в том, что тестовая задача не работает. Исключением является «org.apache.axis2.deployment.DeploymentException: org.apache.axis2.transport. local.LocalTransportSender на org.apache.axis2.deployment.AxisConfigBuilder.processTransportSenders (AxisConfigBuilder.java:707) ' – Jenny

+0

Это здорово - извлечение зависимостей из хранилища артефактов является путь. Я предлагаю проверить, чтобы убедиться, что все необходимые библиотеки Axis присутствуют (и, возможно, также API-интерфейс сервлета как предоставленная зависимость от Compile?) Я не являюсь пользователем Axis, поэтому я боюсь, что это все, что я могу предложить. – dnault

+0

Да. Будет проверять это. Спасибо хоть! Поскольку я новичок в Gradle, я тоже буду работать над вашим ответом :) – Jenny

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

  • Нет связанных вопросов^_^