maven没有使用新的内部版本号更新本地仓库中的jar

时间:2012-05-18 13:58:21

标签: java maven-3

我在其中一个模块的pom中添加了内部版本号插件,如下所示:

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.0-beta-4</version>
        <executions>
            <execution>
                <phase>validate</phase>        
                <goals>
                    <goal>create</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <doCheck>false</doCheck>
            <doUpdate>true</doUpdate>
            <format>${project.version}.{0,number}</format>
            <items>
                <item>buildNumber</item>
            </items>
        </configuration>
    </plugin>

此外,我尝试将内置的jar保存在文件夹./中,jar也通过使用jar插件将buildnumber附加到其版本名称:

<plugin>

    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <archive>
        <manifest>
          <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
        </manifest>
        <manifestEntries>
          <Implementation-Build>${buildNumber}</Implementation-Build>
        </manifestEntries>
      </archive>
      <outputDirectory>target/${buildNumber}</outputDirectory>
    </configuration>
</plugin>

构建工作正常,jar在目标内创建为目标// myjar-.jar (其中版本为1.0,并且buildnumber随着每个构建从1开始递增) 但是在本地存储库中,jar被存储为包// myjar-.jar,即buildnumber没有被添加到那里。 有没有办法实现这个目标? 感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解你的问题,一切似乎都很好(目标目录中的工件,清单等),除了本地存储库中的文件名不是你想要的,我是对的吗?

如果是这样,如果我没记错的话,那确实应该有效。本地/远程存储库中的工件文件名是根据工件名称,版本号,修饰符和限定符以及快照的时间戳生成的。它与目标目录中的输出文件名无关。