使用Maven分类器作为依赖

时间:2016-02-23 19:22:31

标签: maven build maven-dependency-plugin

我在工作区中有一堆项目,每个项目都有自己的pom.xml,使用< foo 生成带有 foo 的分类器的 zip strong> maven-assembly-plugin 如下:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <goals><goal>single</goal></goals>
            <phase>package</phase>
            <configuration>
                <classifier>foo</classifier>
                <descriptors>
                    <descriptor>foo.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>

我还有一个项目,我打算使用 maven-dependency-plugin 复制上述项目中使用 foo 分类器生成的所有jar,如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.9</version>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>my.group.id</groupId>
                                <artifactId>project1</artifactId>
                                <version>${project.version}</version>
                                <classifier>foo</classifier>
                                <type>zip</type>
                                <overWrite>true</overWrite>
                            </artifactItem>
                            <!-- similar artifactItem tags for project, 2, 3, etc -->
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>my.group.id</groupId>
        <artifactId>project1</artifactId>
        <version>${project.version}</version>
        <classifier>source</classifier>
    </dependency>
</dependencies>

但是我收到这些pom文件的错误说:找不到Project1:jar:foo:{version}-{{{}}}中的-SNAPSHOT缓存在本地存储库中,解析不会重新尝试,直到代理中心的更新间隔已经过去或强制更新。

我不明白为什么当我打算从本地版本中复制时maven正试图从存储库下载它。其他项目确实生成了相应的归档。我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:0)

我在其他项目中生成了 zip 类型的档案,而汇编项目pom正试图找到 jar ,因为我没有在中指定类型依赖即可。一旦我添加YYYY-mm-dd,一切都很好!