2013-08-12 8 views
4

Я переношу устаревшее приложение из Ant в Gradle. Требование состоит в создании zip-файла с определенной структурой папок, которая используется командой развертывания. Я могу создать zip-файл в правильном формате, так далекий от этого.Gradle - Добавить папку в Eclipse classpath

Я могу открыть проект в Eclipse, но не могу его запустить. В Eclipse (и IntelliJ) мне нужно добавить src/main/conf в classpath Eclipse, но не включен в JAR (например, если я должен был запустить gradle jar).

Это как проект в настоящее время структурированы:

src 
    /main 
     /java 
      /com 
       /example 
        /App.java 
     /resources 
      /applicationConfiguration.xml 
     /conf 
      /dev.properties 
      /staging.properties 
      /prod.properties 

Как я могу добавить папку conf, чтобы Eclipse, так что путь к классам он не включен в JAR, который создает Gradle?

ответ

4

Учитывая ограниченность EclipseClasspath API Gradle, наиболее простое решение, я могу думать о том, чтобы объявить src/main/conf в другой каталог источник:

sourceSets.main.java.srcDir "src/main/conf" 

Пока каталог не содержит каких-либо Java-файлы, это не повлияет на результат сборки Gradle. Однако каталог будет отображаться как исходный каталог в Eclipse, поэтому его файлы свойств будут скопированы в выходной каталог Eclipse.

1

Другой отзыв. Если вам это нужно, чтобы запустить в Eclipse WTP, то я установил sourceDirs свойство eclipse.wtp.component:

eclipse { 

    project { 
     natures 'org.eclipse.wst.common.project.facet.core.nature', 
       'org.eclipse.wst.common.modulecore.ModuleCoreNature', 
       'org.eclipse.wst.jsdt.core.jsNature' 

     name 'blah-blah' 

    } 

    wtp { 
     facet { 
      facet type: 'fixed', name: 'wst.jsdt.web' 
      facet name: 'java', version: '1.7' 
      facet name: 'jst.web', version: '3.0' 
      facet name: 'wst.jsdt.web', version: '1.0' 
     } 

     component { 

      sourceDirs = new HashSet([ 
        new File(project.getProjectDir().getAbsolutePath() + "/src/main/java"), 
        new File(project.getProjectDir().getAbsolutePath() + "/src/main/resources"), 
        new File(project.getProjectDir().getAbsolutePath() + "/src/main/conf") 
      ]) 
     } 
    } 
Смежные вопросы