如何触发Maven SCM插件根据现有目录自动切换目标?

如何触发Maven SCM插件根据现有目录自动切换目标?,maven,maven-3,maven-plugin,maven-scm,Maven,Maven 3,Maven Plugin,Maven Scm,我是Maven新手,遇到一个问题,我试图根据源代码是否已签出自动将SCM插件目标从签出更改为更新 有人能给我看一个代码示例来让它工作吗? 这是插件配置: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>1.9.4</version>

我是Maven新手,遇到一个问题,我试图根据源代码是否已签出自动将SCM插件目标从
签出更改为更新

有人能给我看一个代码示例来让它工作吗? 这是插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
    <version>1.9.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>checkout</goal>
                </goals>
                <configuration>
                    <connectionType>developerConnection</connectionType>
                    <scmVersion>master</scmVersion>
                    <scmVersionType>branch</scmVersionType>
                    <checkoutDirectory>${project.basedir}/src</checkoutDirectory>
                    <workingDirectory>${project.basedir}/src</workingDirectory>
                </configuration>
            </execution>
        </executions>
</plugin>

org.apache.maven.plugins
maven scm插件
1.9.4
生成源
结账
开发人员连接
主人
分支
${project.basedir}/src
${project.basedir}/src

改变
目标

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
    <version>1.9.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>update</goal>
                </goals>
                <configuration>
                    <connectionType>developerConnection</connectionType>
                    <scmVersion>master</scmVersion>
                    <scmVersionType>branch</scmVersionType>
                    <checkoutDirectory>${project.basedir}/src</checkoutDirectory>
                    <workingDirectory>${project.basedir}/src</workingDirectory>
                </configuration>
            </execution>
        </executions>
</plugin>

org.apache.maven.plugins


改变
目标

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
    <version>1.9.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>update</goal>
                </goals>
                <configuration>
                    <connectionType>developerConnection</connectionType>
                    <scmVersion>master</scmVersion>
                    <scmVersionType>branch</scmVersionType>
                    <checkoutDirectory>${project.basedir}/src</checkoutDirectory>
                    <workingDirectory>${project.basedir}/src</workingDirectory>
                </configuration>
            </execution>
        </executions>
</plugin>

org.apache.maven.plugins


改变SCM插件目标的灵感来自于ỗ NhưVý(上图)

方法是

  • 将目标放置在名为scm.goal的属性中,并将其设置为默认值 ie更新
  • 使用配置文件(引导)更改scm.goal属性值 “更新”为“签出”
  • 根据丢失的.gitignore文件激活引导配置文件
  • 将属性scm.goal放置在scm插件中 目标要素
  • 代码:

    
    ${project.basedir}/src
    更新
    独自创立
    ./src/.gitignore
    结账
    org.apache.maven.plugins
    maven scm插件
    1.9.4
    生成源
    ${scm.goal}
    开发人员连接
    主人
    分支
    ${scm.dest.path}
    ${scm.dest.path}
    ...
    
    改变SCM插件目标的灵感来自于ỗ NhưVý(上图)

    方法是

  • 将目标放置在名为scm.goal的属性中,并将其设置为默认值 ie更新
  • 使用配置文件(引导)更改scm.goal属性值 “更新”为“签出”
  • 根据丢失的.gitignore文件激活引导配置文件
  • 将属性scm.goal放置在scm插件中 目标要素
  • 代码:

    
    ${project.basedir}/src
    更新
    独自创立
    ./src/.gitignore
    结账
    org.apache.maven.plugins
    maven scm插件
    1.9.4
    生成源
    ${scm.goal}
    开发人员连接
    主人
    分支
    ${scm.dest.path}
    ${scm.dest.path}
    ...
    
    谢谢,如果项目未使用签出引导,更新将失败。如何根据签出是否完成自动在签出和更新之间切换?我澄清了这个问题。这个链接可能对你有帮助:谢谢,我想自动切换。我编辑了这个问题来澄清这个问题,给这个解决方案一个尝试的机会:将属性设置为default value
    skipCheckoutIfExists=false
    Awesome,看起来它可以工作了。。。让我使用配置文件尝试其他一些选项。brb如果没有使用签出引导项目,则更新失败。如何根据签出是否完成自动在签出和更新之间切换?我澄清了这个问题。这个链接可能对你有帮助:谢谢,我想自动切换。我编辑了这个问题来澄清这个问题,给这个解决方案一个尝试的机会:将属性设置为default value
    skipCheckoutIfExists=false
    Awesome,看起来它可以工作了。。。让我使用配置文件尝试其他一些选项。马上回来