Добавить информацию о новом хосте

1

У меня проблемы с проектом, который написал другой действительно талантливый человек.

Я пытаюсь развернуть проект на удаленном хосте с Maven

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

Он строит без сбоев без каких-либо ошибок и предупреждений.

"partner" - это короткое имя для сервера 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.

Что я должен делать? Где добавить информацию о партнерском тесте?

ps: Я понимаю, что у меня недостаточно знаний, но я стараюсь все больше узнать, и я надеюсь, что вы можете мне помочь. Я буду благодарен за любой совет!


Я хочу добавить некоторые уведомления.


Ну, я говорил, что моя цель - развернуть проект на удаленном хосте с Maven и Ant. По совету andih (спасибо ему много !!!) я добавил тэги profiles-pom.xml проекта pip. Это фантастика, это помогло мне. В результате после этого команды были установлены.

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 

"partner-test" - это короткое имя для сервера partner-test.rmm.com. Я сделал это по аналогии с "partner" - 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>
Теги:
maven

2 ответа

0
Лучший ответ

Если я правильно понял ваш вопрос, вам нужно определить профиль maven "partner-test". Вы можете определить профили в разных местах:

  • Проект (pom.xml)
  • Пользователь (%USER_HOME%/.m2/settings.xml)
  • Глобальный (%M2_HOME%/conf/settings.xml)
  • Дескриптор профиля - дескриптор, расположенный в проекте basedir (profiles.xml)

см. Введение в сборку профилей

Ваш проект 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.

  • 0
    Спасибо за ваш ответ, я рад, что получил отзыв :) Я не уверен, что метод кулак лучше для меня, потому что pom.xml не дает понять, что я должен изменить. Я добавил pom.xml
  • 0
    Создайте файл profiles.xml в базовом каталоге вашего проекта, обычно в том же каталоге, что и ваш pom. Описание можно найти здесь: maven.apache.org/ref/2.2.1/maven-profile/profiles.html . Как может выглядеть такой профиль partner-test я уже писал. Заполнить недостающие детали зависит от вас. Я не могу этого сделать, потому что у меня нет информации, и я не могу попробовать это.
Показать ещё 3 комментария
0

в вашей команде

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

"партнер", скорее всего, будет профилем, определенным в файле pom.xml.

вы можете отредактировать этот файл и добавить еще один профиль "partner-test" (скопируйте профиль "partner" и измените то, что вам нужно)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню