首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven-dependency-plugin的Gradle等价物

maven-dependency-plugin的Gradle等价物
EN

Stack Overflow用户
提问于 2013-05-20 00:11:21
回答 1查看 4.1K关注 0票数 11

我的根本问题是,当为我的控制器和Freemarker视图运行"spring-test"-based测试时,我需要将所有标记库放在WEB-INF/lib文件夹中-否则freemarker在测试期间将找不到它们。我用下面的maven配置解决了这个问题。在运行测试之前,它实际上会将taglibs jar复制到src/main/webapp/WEB-INF/lib文件夹中。我不想清除此文件夹,因为在为IDE运行此测试时问题是相同的。

代码语言:javascript
复制
<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实现同样的效果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 02:17:37

下面是我是如何解决这个问题的(实际上和maven一样):

为依赖项添加另一个配置:

代码语言:javascript
复制
configurations { 
    taglibs { transitive = false }
}

向此配置添加所需的依赖项:

代码语言:javascript
复制
dependencies {
    ...
    taglibs "org.springframework.security:spring-security-taglibs:$springSecurityVersion"
    ...
}

添加gradle代码以将这些依赖项复制到所需的文件夹:

代码语言:javascript
复制
task copytaglibs(type: Copy) { 
    from configurations.taglibs
    into 'src/main/webapp/WEB-INF/lib'
} 

compileTestJava {
   dependsOn copytaglibs
}

就是这个。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16636702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档