我有一个maven项目,该项目使用exec-maven-plugin构建:
,将节点依赖项作为构建的一部分。<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<workingDirectory>src/main</workingDirectory>
</configuration>
<executions>
<execution>
<id>npm-install</id>
<configuration>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
节点依赖项之一托管在私人git存储库中。我不希望每次构建时输入密码,因此我在package.json中使用git ssh协议:
"dependencies": {
"sass-theme": "git+ssh://git@github.com/MyOrg/sass-theme.git#v1.0.2",
"node-sass": "^4.5.0"
}
这对我来说很好,因为我使用SSH定期连接到组织的私人GIT存储库,并且SSH键不受密码的保护。它还可以在我们的詹金斯服务器(Jenkins Server)上使用,该服务器具有自己的SSH密钥。
这种方法的第一个问题是我组织密码中的一些开发人员保护其SSH键,因此提示他们在构建过程中输入密码。
第二个问题是大多数开发人员使用HTTPS连接到存储库,因此他们必须创建一个SSH键并将其注册在GitHub中。然后,在构建过程中,提示它们允许SSH连接,但是它在构建中如此早,以至于在滚动缓冲区中丢失。
我该更改如何使此过程更加无缝?我们可以有一个共享的SSH键吗?或我需要更改节点依赖的URL以使用git https?
第二个问题是大多数开发人员使用https
连接到存储库
1/他们可以继续这样做,确保他们使用凭证助手来缓存其github.com
用户名和密码(例如,使用Windows的Git,您将使用Microsoft Git corderential经理,链接到Windows中的凭据管理器)
2/为了不更改您的设置(使用SSH URL),开发人员可以使用以下全局配置,例如:
git config --global url."https://github.com".insteadOf git+ssh://git@github.com
这样,任何git@github.com
SSH URL都会被解释/更改为https One。