2013-08-12 115 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") 
      ]) 
     } 
    } 
相关问题