Sha*_*ood 11 dependency-management gradle pom.xml maven
我希望能够对每个项目POM执行分析,以确定每个直接依赖项基于其所有传递依赖项的总和引入到生成的包中的字节数.
例如,如果依赖关系A带来B,C和D,我希望能够看到显示A - >总大小=(A + B + C + D)的摘要.
是否存在Maven或Gradle方法来确定此信息?
Med*_* V. 12
这是build.gradle的任务:
task depsize {
doLast {
final formatStr = "%,10.2f"
final conf = configurations.default
final size = conf.collect { it.length() / (1024 * 1024) }.sum()
final out = new StringBuffer()
out << 'Total dependencies size:'.padRight(45)
out << "${String.format(formatStr, size)} Mb\n\n"
conf.sort { -it.length() }
.each {
out << "${it.name}".padRight(45)
out << "${String.format(formatStr, (it.length() / 1024))} kb\n"
}
println(out)
}
}
Run Code Online (Sandbox Code Playgroud)
该任务打印出所有依赖项的总和,并以kb的大小打印出来,按大小desc排序.
Ale*_*sha 11
我pom.xml在我的工作站上保留了一个小模板来识别重量级的依赖项。
假设您想查看org.eclipse.jetty:jetty-client及其所有传递项的权重,请在新文件夹中创建它。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>not-used</groupId>
<artifactId>fat</artifactId>
<version>standalone</version>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-client</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
然后cd到文件夹并运行mvn package并检查生成的fat jar的大小。在类 Unix 系统上,您可以使用du -h target/fat-standalone.jar它。
为了测试另一个 Maven 工件,只需更改groupId:artifactId上述模板即可。
| 归档时间: |
|
| 查看次数: |
4091 次 |
| 最近记录: |