我的根本问题是,当为我的控制器和Freemarker视图运行"spring-test"-based测试时,我需要将所有标记库放在WEB-INF/lib文件夹中-否则freemarker在测试期间将找不到它们。我用下面的maven配置解决了这个问题。在运行测试之前,它实际上会将taglibs jar复制到src/main/webapp/WEB-INF/lib文件夹中。我不想清除此文件夹,因为在为IDE运行此测试时问题是相同的。
<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>现在我正在将我的项目迁移到gradle。我怎样才能用gradle实现同样的效果?
发布于 2013-05-20 02:17:37
下面是我是如何解决这个问题的(实际上和maven一样):
为依赖项添加另一个配置:
configurations {
taglibs { transitive = false }
}向此配置添加所需的依赖项:
dependencies {
...
taglibs "org.springframework.security:spring-security-taglibs:$springSecurityVersion"
...
}添加gradle代码以将这些依赖项复制到所需的文件夹:
task copytaglibs(type: Copy) {
from configurations.taglibs
into 'src/main/webapp/WEB-INF/lib'
}
compileTestJava {
dependsOn copytaglibs
}就是这个。
https://stackoverflow.com/questions/16636702
复制相似问题