如何指定要在Maven中部署的文件

时间:2013-07-31 00:58:40

标签: maven

我的pom文件的包装是pom。

我想将生成的jar和pom文件上传到存储库,如下所示。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.7</version>
            <executions>
                <execution>
                    <id>default-cli</id>
                    <phase>package</phase>
                    <goals>
                        <goal>deploy-file</goal>
                    </goals>
                    <configuration>
                        <file>target/${artifactId}-${version}.jar</file>
                        <repositoryId>SERVER-Snapshots</repositoryId>
                        <url>https://test.nexsus.com/content/repositories/snapshots/</url>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我收到以下错误。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:
deploy-file (default-cli) on project xxx: The artifact information is inco
mplete or not valid:
[ERROR] [0]  'groupId' is missing.
[ERROR] [1]  'artifactId' is missing.
[ERROR] [2]  'version' is missing.
[ERROR] -> [Help 1]

jar包装pom也会部署文件,例如jar,sha1,md5,pom和zip。我该如何排除其中一些?

4 个答案:

答案 0 :(得分:2)

您无法从pom使用deploy:deploy-file。要部署其他文件,请使用构建帮助程序将它们作为附加工件附加到当前项目。

答案 1 :(得分:1)

如果您只想将工件上传到本地存储库管理器,您只需按照以下步骤在POM中配置它:

<distributionManagement>
    <repository>
        <id>releases</id>
        <name>Releases</name>
        <url>https://test.nexsus.com/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>Snapshots</name>
        <url>https://test.nexsus.com/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

然后执行mvn deploy

答案 2 :(得分:0)

  

jar包装pom也会部署文件,例如jar,sha1,md5,pom和zip。我该如何排除其中一些?

找出生成不需要的工件的内容,并在生成它们时停止。默认情况下,jar模块应该生成jar,pom,md5和sha1文件。还有其他东西正在产生这个拉链(可能是Maven Assembly Plugin?),所以如果你不想要它就禁用“别的东西”。

AFAIK,没有办法配置deploy:deploy不从模块部署一些工件。只能使用skip参数从该模块中部署任何内容。

答案 3 :(得分:0)

部署插件需要部署文件的GAV信息。如果添加以下配置,它可以从当前的pom中提取它们:

  

&LT; pomFile&GT; pom.xml的&LT; / pomFile&GT;