如何使用 Mercurial 和 maven(和 svn)嵌入修订信息

发布于 2024-09-04 15:33:22 字数 1195 浏览 4 评论 0原文

当我们使用 svn 时,我们的项目有一个很好的 hack(尽管我猜测有更好的方法可以做到)将修订信息嵌入到工件(jar 等)中。

现在我们已经迁移到 Mercurial,并且我们希望拥有类似的东西,但在我开始使用 Mercurial 进行类似的 hack 之前,我想知道是否有更好的方法来做到这一点。

感谢您的回答!

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
            <execution>
                    <phase>process-classes</phase>
                    <id>svninfo</id>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                <configuration>
                    <executable>svn</executable>
                    <arguments>
                    <argument>info</argument>
                    <argument>../</argument>
                    <argument>></argument>
                    <argument>target/some-project/META-INF/svninfo.txt</argument>
                    </arguments>
                </configuration>
            </execution>
        </executions>
    </plugin>

Our project had a nice hack (although I'm guessing there are better ways to do it) to embed revision information into the artifacts (jar etc.) when we used svn.

Now we have migrated to mercurial, and we want to have a similar thing, but before I start working on a similar hack with mercurial, I wanted to know if there are better ways to do this.

Thanks for your answers!

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
            <execution>
                    <phase>process-classes</phase>
                    <id>svninfo</id>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                <configuration>
                    <executable>svn</executable>
                    <arguments>
                    <argument>info</argument>
                    <argument>../</argument>
                    <argument>></argument>
                    <argument>target/some-project/META-INF/svninfo.txt</argument>
                    </arguments>
                </configuration>
            </execution>
        </executions>
    </plugin>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撩动你心 2024-09-11 15:33:22

Maven 内部版本号插件 自 1.0-beta-4 起就支持 Mercurial(请参阅MOJO-1432)。 buildnumber:hgchangeset 目标设置两个项目属性,其中包含变更集 ID 和变更集日期,您可以将其与过滤一起使用以获得等效结果。

The Maven Build Number Plugin has support for Mercurial since 1.0-beta-4 (see MOJO-1432). The buildnumber:hgchangeset goal sets two project properties with the changeset id and changeset date that you could use with filtering to obtain an equivalent result.

仙女山的月亮 2024-09-11 15:33:22

听起来 Pascal 有官方的 Maven 方法来做到这一点,但如果你最终模拟了你的 svn hack,mercurial 中最好的相应命令是:

hg log -r . --template '{node|short}\n'

或者如果你正在使用标签并想要变得更奇特:

hg log -r . --template '{latesttag}+{latestance}\n'

请参阅 hg所有选项的帮助模板

Sounds like Pascal has the official maven way to do it, but if you do end up emulating your svn hack, the best corresponding command in mercurial would be:

hg log -r . --template '{node|short}\n'

or if you're using tags and want to get fancy:

hg log -r . --template '{latesttag}+{latestance}\n'

see hg help templates for all the options.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文