6

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

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

但是当我尝试使用收缩包装来解决这种依赖关系时,它会抛出 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) 进行了测试,它似乎将坐标中的“:war”解释为版本 - 这显然不起作用。

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

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

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

有任何想法吗?

4

1 回答 1

4

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

于 2014-08-20T15:07:02.553 回答