我正在将一个项目迁移到 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 插件的可用操作中没有看到任何可以帮助我获取最新更改信息并将其集成到参考内部版本号中的内容。我应该为此开发自己的插件吗?
提前致谢。