2014-12-04 32 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文件中定义的配置文件。

您可以编辑该文件,并添加另一种规范的“合作伙伴测试”(复制“合作伙伴”的个人资料,并改变你的需要)