用gradle添加eclipse项目facet

时间:2013-03-15 18:44:42

标签: eclipse groovy gradle

我有一个gradle脚本,为我设置了一个eclipse项目。除了默认项目之外,我的项目还需要添加额外的项目方面。 The documentation有以下示例

eclipse {
  wtp {
    facet {
      //you can add some extra wtp facets; mandatory keys: 'name', 'version':
      facet name: 'someCoolFacet', version: '1.3'
    }
  }
}

我尝试使用给定的示例添加我自己的facet,但不是将添加的facet添加到现有facet,它实际上替换了所有其他facet,因此是设置中唯一的facet。显然,这不是我的意图。问题是,我如何一个额外的方面添加到默认方面?

编辑:

我想创建一个脚本,将eclipse项目配置到一个文件夹,该文件夹只包含eclipse项目的项目结构,但没有配置文件(.classpath,.project,.settings /)。我正在尝试将Eclipse facet的Vaadin插件添加到Vaadin项目中。这就是我的脚本的样子

subprojects {
    apply plugin: 'war'  
    apply plugin: 'eclipse-wtp'

    sourceCompatibility = 1.6  
    targetCompatibility = 1.6  
    webAppDirName = 'WebContent'  
    vaadinDir = webAppDirName+'/VAADIN'  

    eclipse {

        wtp {
            facet {         
              facet name: 'com.vaadin.integration.eclipse.core', version: '7.0'
            }
        }

    }

    // Source directories  
    sourceSets{  
        main{  
            java{  
                srcDir 'src'  
            }  
        }  
    }  


}

defaultTasks 'eclipse'

这是生成的构面设置

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
    <installed facet="com.vaadin.integration.eclipse.core" version="7.0"/>
</faceted-project>

如果没有定义任何自定义构面,则生成的配置为

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
    <fixed facet="jst.java"/>
    <fixed facet="jst.web"/>
    <installed facet="jst.web" version="2.4"/>
    <installed facet="jst.java" version="6.0"/>
</faceted-project>

如上所述,我是设置中的所有方面:)

1 个答案:

答案 0 :(得分:3)

修改默认值(而不是覆盖它们)有时会很棘手(Gradle解决这个问题不是一个简单的问题),但您可以尝试以下方法:

facet {
    facets = facets
    facet name: 'com.vaadin.integration.eclipse.core', version: '7.0'
}

或者,您可以显式声明默认构面以及自定义构面。