gpt4 book ai didi

maven - Gradle 相当于 maven-dependency-plugin

转载 作者:行者123 更新时间:2023-12-04 03:21:57 26 4
gpt4 key购买 nike

我的根本问题是,当为我的 Controller 和 Freemarker View 运行基于“spring-test”的测试时,我需要将所有标签库放在 WEB-INF/lib 文件夹中 - 否则 freemarker 在测试期间将找不到它们。我用下面的 maven 配置解决了这个问题。它实际上在运行测试之前将 taglibs jars 复制到 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 达到同样的效果?

最佳答案

这是我解决这个问题的方法(实际上与 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
}
就是这个。

关于maven - Gradle 相当于 maven-dependency-plugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com