2013-05-19 17 views
8

Mój problem z rootem polega na tym, że podczas testów opartych na "testach sprężynowych" dla moich kontrolerów i widoków Freemarkera muszę mieć wszystkie znaczniki wewnątrz folderu WEB-INF/lib - w przeciwnym razie freemarker nie będzie znajdź je podczas testów. Rozwiązałem ten problem z następującą konfiguracją maven. To faktycznie kopiuje słoiki taglibs do folderu src/main/webapp/WEB-INF/lib przed uruchomieniem testów. Nie chcę usuwać tego folderu, ponieważ problem jest taki sam podczas uruchamiania tego testu dla IDE.Równoważnik gradientu wtyczki zależnej od maven

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-dependency-plugin</artifactId> 
<version>2.3</version> 
<executions> 
    <!-- Freemaarker requires that all taglibs should reside in WEB-INF/lib folder --> 
    <execution> 
     <id>tests</id> 
     <phase>test-compile</phase> 
     <goals> 
      <goal>copy</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${basedir}/src/main/webapp/WEB-INF/lib/</outputDirectory> 
      <artifactItems> 
       <artifactItem> 
        <groupId>org.springframework.security</groupId> 
        <artifactId>spring-security-taglibs</artifactId> 
        <version>${spring.security.version}</version> 
       </artifactItem> 
      </artifactItems> 
     </configuration> 
    </execution> 
</executions> 
</plugin> 

Teraz przenoszę swój projekt do gradle. Jak mogę osiągnąć to samo z gradle?

Odpowiedz

10

Oto jak rozwiązać ten problem (taki sam jak w Maven faktycznie):

Dodaj inną konfigurację zależności:

configurations{ 
    taglibs { transitive = false } 
} 

dodatków potrzebnych zależność do tej konfiguracji:

dependencies { 
    ... 
    taglibs "org.springframework.security:spring-security-taglibs:$springSecurityVersion" 
    ... 
} 

Dodaj kod gradulacyjny, aby skopiować te zależności do wymaganego folderu:

task copytaglibs << { 
    copy { 
     from configurations.taglibs 
     into 'src/main/webapp/WEB-INF/lib' 
    } 
} 

compileTestJava{ 
    dependsOn copytaglibs 
} 

To wszystko.

Powiązane problemy