Maven构建步骤,以私人仓库

问题描述:

我有执行exec-Maven的插件在节点的依赖性拉作为构建的一部分的Maven项目安装节点包:Maven构建步骤,以私人仓库

<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仓库。我不想输入密码每次我建造时间,所以我用git的+ ssh协议中的package.json:

"dependencies": { 
    "sass-theme": "git+ssh://[email protected]/MyOrg/sass-theme.git#v1.0.2", 
    "node-sass": "^4.5.0" 
    } 

这工作对我很好,因为我定期连接到使用SSH我的组织私人Git仓库,并且SSH密钥不受密码保护。它也适用于我们的Jenkins服务器,它有自己的SSH密钥。

这种方法的第一个问题是我组织中的一些开发人员密码保护了他们的SSH密钥,因此他们被提示在构建过程中输入密码。

第二个问题是大多数开发人员使用HTTPS连接到资源库,因此他们必须创建一个SSH密钥并将其注册到GitHub。然后,在构建过程中,系统会提示它们允许SSH连接,但在构建中发生得太早,它会在滚动缓冲区中丢失。

我可以改变什么来使这个过程更加无缝?我们可以共享一个SSH密钥吗?或者我需要更改节点依赖项的URL以使用git + https?

第二个问题是大多数开发人员使用HTTPS

1 /他们可以继续这样做连接到存储库,确保他们使用的是credential helper缓存这些github.com用户名和密码(以Git for Windows为例,您将使用Microsoft Git Credential Manager,链接到Credential Manager in Windows

2 /为了不更改您的设置(使用ssh url),开发人员每次可以使用一个全局配置,如:

git config --global url."https://github.com".insteadOf git+ssh://[email protected] 

这样一来,任何[email protected] SSH URL将被解释/更改为HTTPS之一。

+0

您是否在说使用SSH的开发人员会添加Git配置设置或使用HTTPS的开发人员?这会阻止任何人在构建过程中被要求创建SSH密钥或输入密码或响应任何其他提示吗? –

+0

@DaveKennedy我在说,想要使用https的开发人员可以通过在自己的工作站上完成的全局配置来设置(其中包含ssh url)。该配置仅适用于他们,并不会阻止其他任何事情。 – VonC

+0

我尝试添加Git配置设置,移动我的〜/ .ssh文件夹并构建项目。发生了什么使我惊讶。我希望它提示我输入密码,但它促使我允许SSH连接(主机github.com的真实性无法建立...您确定要继续吗?)。就像我上面提到的那样,它被隐藏在滚动缓冲区中,所以很难确定它为什么会挂起。 –