【问题标题】:Having maven 3.0.4 and GIT work让 maven 3.0.4 和 GIT 工作
【发布时间】:2013-02-06 20:46:24
【问题描述】:

我尝试从 maven 结帐。我有以下 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>server</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<build>
    <sourceDirectory>${basedir}/src</sourceDirectory>
    <outputDirectory>${basedir}/build</outputDirectory>
    <resources>
        <resource>
            <directory>${basedir}/src</directory>
            <excludes>
                <exclude>**/*.gitignore</exclude>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <dependencies>
                <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-utils</artifactId>
                <version>2.1</version>
                </dependency>
                <dependency>
                <groupId>org.apache.maven.scm</groupId>
                <artifactId>maven-scm-provider-gitexe</artifactId>
                <version>1.2</version>
                </dependency>
            </dependencies>
            <version>1.0</version>
            <configuration>                
                <connectionType>connection</connectionType>
                <checkoutDirectory>${project.basedir}/target/checkout</checkoutDirectory>
                <workingDirectory>${project.basedir}/target/checkout</workingDirectory>
            </configuration>
            <executions>
                <execution>
                    <id>check-out-master</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>checkout</goal>
                    </goals>
                                <configuration>
                        <servers>
                            <server>staging</server>
                        </servers>
                    </configuration>
                 </execution>
             </executions>
        </plugin>
    </plugins>
</build>

<!-- THIRD PARTY DEPENDENCIES -->
<!-- ... -->

<!-- GIT -->

<scm>
    <connection>scm:git:ssh://10.0.50.12/opt/git-repos/server.git</connection>
    <url>scm:git:ssh://10.0.50.12/opt/git-repos/server.git</url>

    <developerConnection>scm:git:ssh://10.0.50.12/opt/git-repos/server.git</developerConnection>
</scm>

在我的 settings.xml 中,我有以下内容:

<server>
    <id>staging</id>
    <username>username</username>
    <password>password</password>
</server>

我无法让它工作,也无法获得密码提示。

在执行时我得到了这个:

[INFO] --- maven-scm-plugin:1.0:checkout (check-out-master) @ server ---

[INFO] Removing C:\workspace\server\server\target\checkout

[INFO] Executing: cmd.exe /X /C "git clone ssh://10.0.50.12/opt/git-repos/server.git C:\workspace\server\server\target\checkout"

[INFO] Working directory: C:\workspace\server\server\target

它卡在了这一点上...... 我猜它正在等待密码。

有人知道使用密码或至少提示输入密码的解决方案吗?

编辑

今天我做了一个简单的测试:我从 linux 运行了 mvn compile 命令,我得到了一个输入 git 密码的提示。也许我应该需要一个 ssh 代理

【问题讨论】:

  • 你能从命令行成功克隆吗?
  • 是的,从 windows 命令行一切正常,我的意思是,在这种情况下,我会提示输入 ssh 密码
  • 使用-X -e 运行maven 并输出到文件。这可能会帮助您弄清楚发生了什么。
  • 我已经这样做了,我得到了相同的结果:卡在最后,可能在等待 ssh 密码。就像他没有找到 ssh 连接的凭据一样。
  • 您是否在同一用户下尝试此操作?

标签: git maven ssh


【解决方案1】:

确保在您运行它的机器上正确设置了 git(定义了名称和电子邮件设置)。然后先尝试从控制台结帐。如果可行,它也应该适用于 Maven。如您所见,它正在执行一个外部进程。

如果失败,请尝试运行 Maven 在打印时为 git 调用的命令。

【讨论】:

  • 我已经完成了,一切正常。但是通过 maven 还是不行。
  • 我可以看到这里link Maven目前不包含SSH客户端,所以你需要自己安装一个。许多 Linux 发行版都带有 OpenSSH。 Windows 用户可以将 Cygwin 与 OpenSSH 的可选安装一起使用。我需要 cygwin 吗?
  • 好吧,你当然需要一个 ssh 客户端!您需要安装一个。就像我提到的,Maven 将 git 作为外部应用程序调用。 Git git 在您的情况下需要 ssh。
  • 好的,我明白了,但是当我在窗口“cmd.exe”中运行 git 命令时,一切正常。它不仅来自 maven 本身。这就是为什么我想知道如何为 git 的 maven 提供凭据。
猜你喜欢
  • 2011-04-15
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 2021-11-28
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多