2

我对 Maven 完全陌生。

我正在尝试对 robocode 中的测试进行覆盖率分析。为此,我正在使用 clover(试用许可证),因为 emma 似乎无法很好地处理多模块项目。

不幸的是,当它到达 robocode.test.robots 模块时,我得到了错误:

[ERROR] BUILD ERROR
[INFO] Unknown archiver type

Embedded error: No such archiver: 'api/target/classes'.

我试过用谷歌搜索这个问题,但我没有找到使用与我拥有的 pom 文件中的标签相同的标签的示例。

这是pom文件(我只添加了三叶草插件部分):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
    <artifactId>robocode</artifactId>
    <groupId>net.sf.robocode</groupId>
    <version>${robocode.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>net.sf.robocode</groupId>
<artifactId>robocode.tests.robots</artifactId>
<version>${robocode.version}</version>
<name>Robocode tested robots</name>
<dependencies>
    <dependency>
        <groupId>net.sf.robocode</groupId>
        <artifactId>robocode.api</artifactId>
        <version>${robocode.version}</version>
    </dependency>
    <dependency>
        <groupId>net.sf.robocode</groupId>
        <artifactId>robocode.samples</artifactId>
        <version>${robocode.version}</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack-dependencies</id>
                    <phase>test</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                        <includes>sample*/**</includes>
                        <outputDirectory>${project.build.directory}/classes</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-clover2-plugin</artifactId>
        </plugin>

    </plugins>
</build>
</project>

据我了解,问题出在 unpack-dependencies 部分。

4

2 回答 2

0

在我看来,您遇到了以下错误:http: //jira.codehaus.org/browse/MDEP-194。一个解决方案似乎是升级依赖解包插件并指定 mvn install (而不是 mvn test)

另请参阅: 使用 Eclipse 构建 Maven 项目时出现“未知归档器类型”异常

于 2012-04-05T16:04:51.933 回答
0

通过仔细查看堆栈跟踪,您会看到哪一行(依赖项)导致构建失败。

Unpacking C:\Users\Jim\.m2\repository\org\jboss\logging\jboss-logging\3.1.0.GA\jboss-logging-3.1.0.GA.jar to C:\workspace\WorldChecker\progetti\Project1\target\classes with includes "" and excludes ""
Unpacking C:\Users\Jim\.m2\repository\commons-io\commons-io\1.3.2\commons-io-1.3.2.jar to C:\workspace\WorldChecker\progetti\Project1\target\classes with includes "" and excludes ""
Unpacking C:\Users\Jim\.m2\repository\com\jimrosenstein\Project1Core\1.0-SNAPSHOT\Project1Core-1.0-SNAPSHOT.jar to C:\workspace\WorldChecker\progetti\Project1\target\classes with includes "" and excludes ""
Unpacking C:\Users\Jim\.m2\repository\com\jimrosenstein\com.worldchecker.Project1.application\1.0-SNAPSHOT\com.worldchecker.Project1.application-1.0-SNAPSHOT.jar to C:\workspace\WorldChecker\progetti\Project1\target\classes with includes "" and excludes ""
Unpacking C:\Users\Jim\.m2\repository\org\bouncycastle\bctsp-jdk16\1.46\bctsp-jdk16-1.46.pom.sig to C:\workspace\WorldChecker\progetti\Project1\target\classes with includes "" and excludes ""

------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 01:05 min
Finished at: 2018-06-06T12:43:15+02:00
Final Memory: 30M/306M
------------------------------------------------------------------------

Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.6:unpack-dependencies (unpack-dependencies) on project Project1: Unknown archiver type: No such archiver: 'sig'

如您所见,最后一行是构建失败的地方。因此,在这种情况下,bouncycastle 依赖存在一些问题。为了解决这个问题,我将它从我被告知要使用的模块中排除:

         <dependency>
            <groupId>com.worldchecker</groupId>
            <artifactId>mod.basic</artifactId>
            <version>4.0.0-RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

然后构建成功。

于 2018-06-06T10:54:48.390 回答