0

我在我的一个模块的 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 保存在文件夹中。

<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 在目标内部创建为 target//myjar-.jar (假设版本为 1.0,并且 buildnumber 随着每个构建从 1 开始递增)但是在本地存储库中,jar 存储为 package//myjar- .jar ,即内部版本号没有被添加到那里。有没有办法做到这一点?谢谢。

4

1 回答 1

2

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

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

于 2012-05-18T15:23:45.810 回答