通常,当我们从Ivy下载jar时,我们设置pattern
以包含jar的版本号。
<ivy:retrieve
pattern="${lib.dir}/[conf]/[artifact]-[revision].[ext]"
log="${ivy.log}"/>
但是,对于这个项目,我们不能这样做。必须在没有版本ID的情况下下载Jars:
<ivy:retrieve
pattern="${lib.dir}/[conf]/[artifact].[ext]"/>
此应用程序由覆盖已安装的内容安装。如果特定jar的修订版从一个版本更改为下一个版本,我们最终会得到旧jar和该jar版本的新版本,我们不知道正在使用哪个版本。删除修订信息可以轻松确保旧版罐更换为较新版本。
然而,开发人员仍然想要一个简单的报告,说明哪些版本的jar被下载并放入内置的战争中,所以我该如何生成这样的报告。我在查看ivy:report
,但它没有生成文本报告。有一个<ivy:artifactreport/>
任务,但它也会产生XML报告而不是文本报告。
我可以使用Perl或Python解析此报告,但我不想在构建过程中使用可执行文件。否则,当开发人员进行构建时,他们必须确保正确安装和配置这些外部程序。
是否有简单的方法来生成纯文本报告?
答案 0 :(得分:1)
使用ANT xslt任务生成CSV格式的文本文件
├── build
│ └── ivy
│ ├── com.myspotontheweb-demo-compile.html
│ ├── com.myspotontheweb-demo-runtime.html
│ ├── com.myspotontheweb-demo-test.html
│ ├── ivy-report.css
│ ├── report.txt
│ └── report.xml
├── build.xml
├── ivy.xml
└── report.xsl
<project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve" description="Use ivy to resolve dependencies">
<ivy:resolve/>
<!-- Reports -->
<ivy:report todir='build/ivy' graph='false' xml='false'/>
<ivy:artifactreport tofile="build/ivy/report.xml"/>
<xslt style="report.xsl" in="build/ivy/report.xml" out="build/ivy/report.txt"/>
</target>
</project>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="modules/module/artifact"/>
</xsl:template>
<xsl:template match="artifact">
<xsl:value-of select="../@organisation"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="../@name"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="../@rev"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="origin-location"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="cache-location"/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
org.slf4j,slf4j-api,1.7.5,http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar,/home/mark/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.5.jar
org.slf4j,slf4j-log4j12,1.7.5,http://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar,/home/mark/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.5.jar
log4j,log4j,1.2.17,http://repo1.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar,/home/mark/.ivy2/cache/log4j/log4j/bundles/log4j-1.2.17.jar
junit,junit,4.11,http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar,/home/mark/.ivy2/cache/junit/junit/jars/junit-4.11.jar
org.hamcrest,hamcrest-core,1.3,http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar,/home/mark/.ivy2/cache/org.hamcrest/hamcrest-core/jars/hamcrest-core-1.3.jar