svn - Maven - 从 SVN 拉取代码

标签 svn maven compilation

我正在将 J2ee 项目从 Ant 迁移到 Maven,
Ant 的任务之一是从 SVN 存储库中提取现有源
编译它,并将它的 jar 作为 Jar 添加到我当前的构建中

是否可以获取源代码并在 Maven 中编译它?

谢谢!

<target name="checkoutBuild" description="Pulls code from SVN into the build directory">
    <exec executable="svn">
        <arg line="co ${svn.projecturl} ${project.build.root} -r ${svn.revision} --username ${svn.username} --password ${svn.password}"/>
    </exec>
</target>

最佳答案

是的,就像在 Ant 中一样。执行svn exec-maven-plugin 中的命令在预编译阶段之一,可能在生成源中。我会尝试这样的事情(这是一个脑残,可能包含小错误):

<build>
 <plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>...</version>
    <executions>
      <execution>
        <id>svn</id>
        <goals>
          <goal>exec</goal>
        </goals>
        <phase>generate-sources</phase>
      </execution>
    </executions>
    <configuration>
      <executable>svn</executable>
      <arguments>
        <argument>co</argument>
        <argument>${svn.projecturl}</argument>
        <argument>${project.build.root}</argument>
        ...
      </arguments>
    <configuration>
  </plugin>
 </plugins>
</build>

编辑

Prunge 的回答让我思考——你想要真正实现什么?如果项目始终是构建的一部分,那么更好的方法是“mavenize”它(为它编写一个 POM)并将其作为模块/依赖项包含在内。

如果 SVN checkout 是一次性操作,也许最好保持原样,使用 mvn install:install-file 将 jar 添加到存储库中(分配组 id 和 Artifact id),并将其用作依赖项?

关于svn - Maven - 从 SVN 拉取代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881437/

相关文章:

svn - 搜索颠覆历史(全文)

svn - 持续集成颠覆

纸质文档的SVN标签实践

java - 如何为 Weld 应用程序获取可执行的 jar

java - 如何获取 Maven Artifact 的文件路径?

svn - 提交到 SVN 分支也会影响主干

java - 如何检测两个linux路径何时引用maven中的同一个文件?

java - 如何在不安装整个 JDK 的情况下在 Windows 中编译 Java 代码?

java - 用于独立于系统的程序分发的即时 C++ 编译器

encoding - 使 Ruby 1.9 将所有源文件视为 UTF-8 编码。 (即使需要重新编译解释器)