使用shrinkwrap maven解析器解决依赖war文件

时间:2014-08-19 12:43:04

标签: jboss-arquillian shrinkwrap

我正在设置arquillian测试。我想使用arquillian将JB部署到JBoss。这场战争在我的pom.xml中定义为依赖:

    <dependency>
        <groupId>my.project</groupId>
        <artifactId>mywar</artifactId>
        <version>1.0</version>
        <type>war</type>
        <scope>runtime</scope>
    </dependency>   

但是当我尝试使用shrinkwrap恢复此依赖关系时,它会抛出NoResolvedResultException:

PomEquippedResolveStage resolver = Maven.configureResolver().workOffline().loadPomFromFile("pom.xml");  
File war = resolver.resolve("my.project:mywar:war").withoutTransitivity().asSingleFile();

似乎解析器无法以某种方式处理战争文件。我也经历过org.jboss.shrinkwrap.resolver.api.ResolveWithRangeSupportStage.resolveVersionRange(String),它似乎解释了&#34;:war&#34;在坐标中作为版本 - 显然不会起作用。

如果我提供版本,它可以工作:

Maven.resolver().resolve("my.project:mywar:war:1.0").withoutTransitivity().asSingleFile();

但是我需要让它在没有版本的情况下工作,因为这会随着时间而改变,我不想在每个版本上调整版本。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

由于你的工件不是JAR,我认为你必须添加一个问号。您的解析器应如下所示:.resolve("my.project:mywar:war:?")