2014-12-04 36 views
1

我遇到了其他真正有才華的人撰寫的項目問題。添加有關新主機的信息

我嘗試使用Maven

[email protected]:~/workspace/pip$ mvn -P production, partner clean install -Dmaven.test.skip=true 

它建立seccessful沒有任何錯誤和警告的項目部署到遠程主機。

「合作伙伴」是服務器machine.partner.rmm.com的一些簡稱。

但是當我要部署到新的服務器partner-test.rmm.com

[email protected]:~/workspace/pip$ mvn -P production, partner-test clean install -Dmaven.test.skip=true 

...... 
[INFO] Reactor Summary: 
[INFO] 
[INFO] pip_part1 .................................... SUCCESS [4.574s] 
[INFO] pip-part2 .................................... SUCCESS [3.677s] 
[INFO] pip-part3 .................................... SUCCESS [5.178s] 
[INFO] pip-part4 .................................... SUCCESS [3.857s] 
[INFO] pip-part5 .................................... SUCCESS [0.134s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 18.861s 
[INFO] Finished at: Thu Dec 04 11:46:24 MSK 2014 
[INFO] Final Memory: 33M/285M 
[INFO] ------------------------------------------------------------------------ 
[WARNING] The requested profile "partner-test" could not be activated because it does not exist. 

它建立,但寫道夥伴測試犯規存在,它的邏輯,這樣我還沒有加入有關信息什麼是夥伴測試在任何地方。但有同樣的情況,當我嘗試用全名

[email protected]:~/workspace/pip$ mvn -P production, partner-test.rmm.com clean install -Dmaven.test.skip=true 

的pom.xml

的pom.xml

http://maven.apache.org/xsd/maven-4.0部署。 0.xsd「>

<modelVersion>4.0.0</modelVersion> 
<groupId>com.rmm.pipproject</groupId> 
<artifactId>pip</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<modules> 
    <module>pip-part1</module> 
    <module>pip-part2</module> 
    <module>pip-part3</module> 
    <module>pip-part4</module> 
</modules> 

我使用Eclipse的Java IDE(版本:開普勒),Ubuntu的14.04時,Maven 1.7.0_65,螞蟻1。 9.3。

我該怎麼辦?哪裏可以添加關於夥伴測試的信息?

p.s .:我明白我沒有足夠的知識,但我試着去了解越來越多,我希望你能幫助我。我會感謝任何建議!


我想添加一些通知。


那麼,我談到了我的目標是通過Maven和Ant將項目部署到遠程主機。 根據andih(非常感謝他)的建議,我將profiles-tag添加到項目pip的pom.xml中。這對我來說太棒了。結果在下面的命令連接建立之後。

[email protected]:~/workspace/pip$ mvn -P production, partner clean install -Dmaven.test.skip=true 
[email protected]:~/workspace/pip-part1$ ant -p 
[email protected]:~/workspace/pip-part1$ ant print-hosts 
[email protected]:~/workspace/pip-part1$ ant deploy -Dhost=partner-test.rmm.com 

「partner-test」是服務器partner-test.rmm.com的一些簡稱。我通過與「合作伙伴」類比來完成 - machine.partner.rmm.com(我不知道它是如何完成的)。

所以現在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>com.rmm.pipproject</groupId> 
    <artifactId>pip</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <profiles> 
    <profile> 
     <id>partner-test</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <server>partner-test.rmm.com</server> 
     </properties> 
     </profile> 
    </profiles> 
    <modules> 
     <module>pip-part1</module> 
     <module>pip-part2</module> 
     <module>pip-part3</module> 
     <module>pip-part4</module> 
    </modules> 
</project> 

它的偉大,它開始連接,但我的目標尚未達到。我不能部署項目。

[email protected]:~/workspace/pip-part1$ ant deploy -Dhost=partner-test.rmm.com 
Buildfile: /home/user/workspace/pip-part1/build.xml 

check-dist-directory: 
is-dist-exists:  
deploy: 
    [echo] start 
     [scp] Connecting to partner-test.rmm.com:22 
     [scp] Connecting to partner-test.rmm.com port 22 
     [scp] Connection established 
     .... 
     [scp] Authentications that can continue: publickey,keyboard-interactive,password 
     [scp] Next authentication method: publickey 
     [scp] Authentications that can continue: password 
     [scp] Next authentication method: password 
     [scp] Disconnecting from partner-test.rmm.com port 22 

BUILD FAILED 

很明顯,它無法獲得身份驗證,雖然我寫在build.xml文件中以公鑰登錄。

<target name="deploy" depends="check-dist-directory,is-dist-exists" description="deploy web application on production server"> 
    <echo>start</echo> 
    <scp file="target/pip.war" todir="[email protected]${host}:/var/lib/tomcat6/pip" keyfile="${user.home}/.ssh/id_rsa" verbose="true"/> 
    <echo>end</echo> 
</target> 

回答

0

如果我正確理解您的問題,您需要定義一個maven配置文件「partner-test」。您可以在不同的位置定義配置文件:

  • 項目(pom.xml
  • 用戶(%USER_HOME%/.m2/settings.xml
  • 全球(%M2_HOME%/conf/settings.xml
  • 檔案描述 - 位於項目的basedir(profiles.xml
描述符

請參閱Introduction to Build Profiles

您的項目出海可能看起來像:

<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"> 
    ... 
    <profiles> 
    <profile> 
     <id>partner-test</id> 
     <activeByDefault>true</activeByDefault> 
     <distributionManagement> 
     <repository> 
      <uniqueVersion>false</uniqueVersion> 
      <id>test-parner</id> 
      <name>Corporate Repository</name> 
      <url>scp://repo/test-partner....</url> 
      <layout>default</layout> 
     </repository> 
     <snapshotRepository> 
      <uniqueVersion>true</uniqueVersion> 
      <id>testSnap</id> 
      <name>Propellors Snapshots</name> 
      <url>sftp://propellers.net/maven</url> 
      <layout>legacy</layout> 
     </snapshotRepository> 

     </distributionManagement> 
    </profile> 
    </profiles> 
</project> 

更詳細的信息可以在POM Reference頁面上找到。

+0

謝謝您的回答,我很高興我得到的反饋:) 我不是肯定拳頭的方法對我來說是更好的方法,因爲pom.xml沒有說明我應該改變什麼。 我添加了pom.xml – Myumla 2014-12-04 13:01:24

+0

在你的項目基目錄中創建一個'profiles.xml',通常和你的pom一樣。說明可以在這裏找到:http://maven.apache.org/ref/2.2.1/maven-profile/profiles.html。這樣的「夥伴測試」配置文件可能看起來像我已經發布。填寫缺失的細節取決於你。我不能那樣做,因爲我沒有這些信息,我也無法嘗試。 – andih 2014-12-04 13:47:34

+0

毫無疑問,你是對的,我以前見過文檔,但我不完全明白應該使用哪個來編寫服務器的簡稱和全名。 可能不便所以 ' patner測試 patner-test.rmm.com '。此代碼可以添加到標籤''之間的pom.xml中。但Eclipse強調「」。 – Myumla 2014-12-04 15:58:34

0

在命令

[email protected]:~/workspace/pip$ mvn -P production, partner clean install -Dmaven.test.skip=true 

「合作伙伴」更可能是在pom.xml文件中定義的配置文件。

您可以編輯該文件,並添加另一種規範的「合作伙伴測試」(複製「合作伙伴」的個人資料,並改變你的需要)