首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven-deploy-plugin忽略版本号?

maven-deploy-plugin忽略版本号?
EN

Stack Overflow用户
提问于 2012-06-26 01:08:44
回答 2查看 3K关注 0票数 1

我是Maven的新手,我正在尝试将我的项目部署为war和jar。我很想拆分项目做同样的事情,但它太大了,简单的我不能在一个合理的时间做。

我找到了maven deploy additional jar file,它建议我添加一些插件。

安装插件运行得很好

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <packaging>jar</packaging>
                <artifactId>${project.artifactId}</artifactId>
                <groupId>${project.groupId}</groupId>
                <version>SNAPSHOT</version>
                <file>
                    ${project.build.directory}/${project.artifactId}-SNAPSHOT.jar
                </file>
            </configuration>
        </execution>
    </executions>
</plugin>

下面是输出:

代码语言:javascript
复制
[INFO] [install:install-file {execution: default}]
[INFO] Installing C:\Server\example\code\server\my-project\target\my-project-SNAPSHOT.jar to C:\Users\Kyle\.m2\repository\com\example\main-project\my-project\SNAPSHOT\my-project-SNAPSHOT.jar

问题出在maven-deploy-plugin上。它似乎忽略了我强制它使用的快照版本:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <executions>
        <execution>
            <phase>deploy</phase>
            <goals>
                <goal>deploy-file</goal>
            </goals>
            <configuration>
                <packaging>jar</packaging>
                <generatePom>true</generatePom>
                <url>${project.distributionManagement.snapshotRepository.url}</url>
                <artifactId>${project.artifactId}</artifactId>
                <groupId>${project.groupId}</groupId>
                <version>SNAPSHOT</version>
                <!--${project.version}!="SNAPSHOT" for some reason-->
                <file>${project.build.directory}/${project.artifactId}-SNAPSHOT.jar</file>
            </configuration>
        </execution>
    </executions>
</plugin>

似乎使用了其他版本号(YYYYMMDD.HHmmSS-#)

代码语言:javascript
复制
[INFO] [deploy:deploy-file {execution: default}]
[INFO] Retrieving previous build number from remote-repository
Uploading: http://build.example.biz:8081/artifactory/libs-snapshots-local/com/example/main-project/my-project/SNAPSHOT/my-project-20120625.161551-2.jar
42993K uploaded  (my-project-20120625.161551-2.jar)

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2012-06-26 05:00:25

我观察到的一件事是,您使用的版本快照没有任何类型的前面的数字,如:

代码语言:javascript
复制
1.0.0-SNAPSHOT

或者至少:

代码语言:javascript
复制
1-SNAPSHOT

在这种情况下,您正在使用快照这一does not make sense,原因,您正在谈论哪一条开发线路。

另一件事是,Maven中的快照(假设您以正确的方式使用它)是一个工件,其中将放置时间戳而不是快照。这是一种可以释放多个快照,但又可以区分它们的方法。

因此,您在输出中显示的内容正是Maven从快照中生成的内容:

代码语言:javascript
复制
[INFO] [deploy:deploy-file {execution: default}]
[INFO] Retrieving previous build number from remote-repository
Uploading: http://build.example.biz:8081/artifactory/libs-snapshots-local/com/example/main-project/my-project/SNAPSHOT/my-project-20120625.161551-2.jar
42993K uploaded  (my-project-20120625.161551-2.jar)
票数 1
EN

Stack Overflow用户

发布于 2012-06-26 07:00:15

在相应的远程存储库中有一个http://build.example.biz:8081/artifactory/libs-snapshots-local/com/example/main-project/my-project/SNAPSHOT/maven-metadata.xml。如果您查看它,您将看到最新的时间戳被映射到您各自的SNAPSHOT。这是Maven2和Maven3下的典型行为。我相信在Maven3下使用带时间戳的SNAPSHOT-s是默认行为。

当您尝试通过Maven下载工件时,我相信它会为您正确地解决它,所以您不应该真正感到惊慌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11193948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档