在ant中获取maven运行时依赖项



我想从maven in ant中获得运行时依赖项集。我正在使用maven任务。

我知道你可以通过作用域限制依赖关系(参见文档):

<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
  <artifact:pom file="pom.xml" id="myProject" />
</artifact:dependencies>

和作用域选项(来自文档)是:

•compile - Includes scopes compile, system and provided
•runtime - Includes scopes compile and runtime
•test - Includes scopes system, provided, compile, runtime and test

然而,我想获得只有运行时依赖关系(即排除编译依赖关系)。到目前为止,我最好的想法是获得运行时依赖项和编译依赖项,并遍历运行时依赖项以找到那些不在编译依赖项中的依赖项,但我还没有弄清楚如何做到这一点。

任何想法?

您需要的内容如下:

...
<artifact:pom id="maven.project" file="pom.xml"/>
<artifact:dependencies useScope="runtime"
                       filesetId="dependencies.runtime"
                       pomRefId="maven.project"
                       settingsFile="${settings.xml}"/>
...

那么你可以像往常一样使用dependencies.runtime文件集。

所以这就是我试图得到运行时和编译文件集的区别(尽管这使得假设编译文件集中没有任何东西不在运行时文件集中)

<artifact:dependencies filesetId="runtime" scopes="runtime">
  <artifact:pom file="pom.xml" id="myProject" />
</artifact:dependencies>
<artifact:dependencies filesetId="compile" scopes="compile">
  <artifact:pom file="pom.xml" id="myProject" />
</artifact:dependencies>
<difference id="difference" >
  <resources refid="runtime" />
  <resources refid="compile" />
</difference>

然而,这并没有产生我所期望的结果,所以我做了以下操作,并发现运行时文件集包含编译依赖项。

<echo message="${toString:runtime}" />
<echo message="${toString:compile}" />

所以我可以使用运行时范围。

相关内容

  • 没有找到相关文章

最新更新