添加有关新主机的信息

时间:2014-12-04 10:06:13

标签: java maven

我有项目的问题,这是由其他真正有才华的人写的。

我尝试使用Maven将项目部署到远程主机

user@user:~/workspace/pip$ mvn -P production, partner clean install -Dmaven.test.skip=true 

它构建成功,没有任何错误和警告。

"伙伴"是服务器machine.partner.rmm.com的简称。

但是当我想部署到新服务器partner-test.rmm.com

user@user:~/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.

它构建,但写道伙伴测试不存在,它的逻辑,所以我没有添加任何地方的伙伴测试的信息。但是当我尝试使用全名

进行部署时,情况也是如此
user@user:~/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(版本:Kepler),Ubuntu 14.04,maven 1.7.0_65,ant 1.9.3。

我该怎么办?在哪里添加有关合作伙伴测试的信息?

p.s。:我知道我没有足够的知识,但我试图了解越来越多,我希望你能帮助我。我会感谢任何建议!


我想添加一些通知。


好吧,我说我的目标是使用Maven和Ant将项目部署到远程主机。 根据{{​​3}}的建议(非常感谢他!!!)我将profiles-tag添加到项目pip的pom.xml中。这对我很有帮助。结果是在下面的命令建立连接后。

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

&#34;伙伴测试&#34;是服务器partner-test.rmm.com的简称。我和#34;伙伴&#34;做了类比。 - 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>

它开始连接很棒,但我的目标还没有实现。我无法部署项目。

user@user:~/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="pip@${host}:/var/lib/tomcat6/pip" keyfile="${user.home}/.ssh/id_rsa"  verbose="true"/>
    <echo>end</echo>
</target>

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您需要定义maven配置文件“partner-test”。您可以在不同位置定义配置文件:

  • 项目(pom.xml
  • 用户(%USER_HOME%/.m2/settings.xml
  • 全球(%M2_HOME%/conf/settings.xml
  • 配置文件描述符 - 位于项目basedir(profiles.xml
  • 中的描述符

请参阅Introduction to Build Profiles

您的Project Pom可能类似于:

<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页面找到。

答案 1 :(得分:0)

在您的命令中

user@user:~/workspace/pip$ mvn -P production, partner clean install -Dmaven.test.skip=true

“partner”更可能是pom.xml文件中定义的配置文件。

您可以编辑该文件并添加其他个人资料“partner-test”(复制“合作伙伴”个人资料并更改您需要的内容)