【发布时间】:2013-11-18 12:58:03
【问题描述】:
我正面临这个问题:
我正在为我们的客户创建装配体。在这个程序集中,我基本上想要 2 个重要的目录:
-
lib/包含所有运行时范围的项目依赖项(包括传递性) -
test/具有所有测试范围依赖项(包括传递性),但没有那些已经存在于 lib 文件夹中的依赖项
到目前为止,我最终得到了这个程序集文件(我只包括了重要的部分):
<assembly>
<id>zip-with-lib-and-test</id>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
<useTransitiveDependencies>true</useTransitiveDependencies>
<useTransitiveFiltering>true</useTransitiveFiltering>
<useProjectArtifact>true</useProjectArtifact>
</dependencySet>
<dependencySet>
<outputDirectory>test</outputDirectory>
<unpack>false</unpack>
<includes>
<include>group:test-artifact1</include>
<include>group:test-artifact1</include>
</includes>
<useTransitiveDependencies>true</useTransitiveDependencies>
<scope>test</scope>
</dependencySet>
</dependencySets>
</assembly>
有了这个,我有了带有命名工件的测试目录,但是这些测试工件没有传递依赖关系。
我需要像这样进行排除:如果您存在于 lib 工件中,您将不会在测试中。 我试图用 maven-dependency-plugin 做到这一点,但没有运气。
此处不能选择确切的依赖项列表,因为此程序集将位于多个工件上。
【问题讨论】:
-
我认为仅仅通过汇编插件是不可能完成这个任务的。我会保留您现在拥有的内容并添加另一个步骤,该步骤将根据您的要求对组装结果进行后处理。
-
@AndrewLogvinov 感谢您的评论,请您提供更多细节,您如何看待“另一个会对结果进行后处理的 sptep”?
标签: java maven maven-3 maven-assembly-plugin