gpt4 book ai didi

maven - 将 Perforce scm 配置到 Maven 项目中以获取最新的更改列表

转载 作者:行者123 更新时间:2023-12-04 15:36:04 25 4
gpt4 key购买 nike

我正在将一个项目迁移到 Maven,因为我们过去总是通过 Perforce SCM 存储库中的最新更改号来引用我们的构建,我希望能够提取此信息

我正在尝试通过以下资源配置 Maven scm 插件:

  • http://maven.apache.org/scm/maven-scm-plugin/usage.html用于一般用途
  • http://www.perforce.com/perforce/doc.current/manuals/p4maven/index.html

  • 首先我不明白如何让它工作,所以如果有人有一个完整的工作示例,我会很高兴,在我这边我已经尝试通过添加我的 pom:

    <scm>
    <connection>
    scm:perforce:localhost:1666://depot/
    <my_project>
    /
    <version>
    </connection>
    <developerConnection>
    scm:perforce:localhost:1666:/depot/
    <my_project>
    /
    <version>
    </developerConnection>
    <url>http://somerepository.com/view.cvs</url>
    </scm>
    ...
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
    <version>1.6</version>
    <dependencies>
    <!-- P4Maven -->
    <dependency>
    <groupId>com.perforce</groupId>
    <artifactId>p4maven</artifactId>
    <version>[2011,2012)</version>
    </dependency>
    </dependencies>
    <configuration>
    <connectionType>//depot/proto/kernel/kernel/04.00/maven2</connectionType>
    <username>my local username</username>
    <password>xxxxxx</password>
    <includes>**</includes>
    </configuration>
    </plugin>
    </plugins>

    这导致我:

    [INFO] --- maven-scm-plugin:1.6:checkout (default-cli) @ kernel ---
    mars 27, 2012 9:54:08 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
    Avertissement: Error injecting: org.apache.maven.scm.provider.svn.svnexe.SvnExeScmProvider
    java.lang.NoClassDefFoundError: org/apache/maven/scm/command/info/InfoScmResult

    当然忘记了一些东西,我会尝试再次阅读说明,看看我想念什么,但如果有人知道......

    无论如何,我的问题是:值得尝试吗?
    我没有在 scm 插件的可用操作中看到任何可以帮助我获取最后更改信息并将其集成到引用版本号中的内容。我要为此开发自己的插件吗?

    提前致谢。

    最佳答案

    我从一位 P4Maven 开发人员那里得到了一些可能有帮助的建议。

    首先,检查您的配置。 ""标签中的 "..."应该是 ""标签中的标签名称之一(即“connection”或“developerConnection”)

    有两个选项可以将 Maven 与 Perforce SCM 一起使用。

  • 使用默认(内置)Maven Perforce SCM 提供程序(基于 p4 命令行)
  • 请注意,您需要安装 p4 命令行可执行文件
  • 您可以使用环境变量或 JVM 参数设置用户名和密码

  • [环境变量]
    P4客户端=
    P4用户=
    P4PASSWD=

    或者

    [JVM 参数]
    -Dusername= -Dpassword=

    [pom.xml]
    ...


      ...

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
    <version>1.4</version>
    </plugin>

    ...



    ...
     <!-- SCM Settings -->
    <scm>
    <connection>scmerforce:localhost:1666://depot/someproject</connection>
    <developerConnection>scmerforce:localhost:1666://depot/someproject</developerConnection>
    <url>scmerforce://depot/simple</url>
    </scm>

    ...
  • 使用 P4Maven Perforce SCM 提供程序(基于 P4Java)

  • [pom.xml]

    ...


      ...

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
    <version>1.4</version>
    <dependencies>
    <!-- P4Maven -->
    <dependency>
    <groupId>com.perforce</groupId>
    <artifactId>p4maven</artifactId>
    <version>[2011,2012)</version>
    </dependency>
    </dependencies>
    <configuration>
    <connectionType>connection</connectionType>
    <username>someuser</username>
    <password>somepassword</password>
    <includes>**</includes>
    </configuration>
    </plugin>

    ...



    ...


    scm4:localhost:1666://depot/someproject
    scm4:localhost:1666://depot/someproject
    scm4://depot/someproject


    ...
  • 请注意,对于 P4Maven,我们将覆盖“maven-scm-plugin”插件中的默认提供程序。
  • 请注意,我们使用“scmp4”(如果使用 P4Maven)而不是“scmperforce”(内置默认值)作为提供程序名称,因为“perforce”被现有的默认实现采用。
  • 关于maven - 将 Perforce scm 配置到 Maven 项目中以获取最新的更改列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885490/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com