2013-08-12 110 views
4

我正在將遺留應用程序從Ant遷移到Gradle。要求是構建具有部署團隊使用的特定文件夾結構的zip文件。我能夠以正確的格式創建zip文件,非常好。Gradle - 將文件夾添加到Eclipse類路徑

我可以在Eclipse中打開項目,但無法運行它。在Eclipse(和IntelliJ)中,我需要將src/main/conf添加到Eclipse的類路徑中,但不包含在JAR中的(例如,如果我要運行gradle jar)。

這是該項目目前的結構:

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

我如何可以添加conf文件夾,以便它不是在搖籃創建JAR包含到Eclipse的類路徑?

回答

4

鑑於搖籃的EclipseClasspath API的限制,最直接的解決方案,我能想到的是聲明src/main/conf作爲另一個源目錄:

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

只要目錄中不包含任何Java文件,這不會影響Gradle構建的結果。但是,該目錄將在Eclipse中顯示爲源目錄,因此其屬性文件將被複制到Eclipse輸出目錄中。

1

另一個提示。如果你需要在Eclipse中WTP運行,那麼我設置的eclipse.wtp.componentsourceDirs屬性:

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") 
      ]) 
     } 
    } 
相關問題