2017-03-06 146 views
1

我有執行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?

回答

0

第二個問題是大多數開發人員使用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的真實性無法建立...您確定要繼續嗎?)。就像我上面提到的那樣,它被隱藏在滾動緩衝區中,所以很難確定它爲什麼會掛起。 –