У меня проблемы с проектом, который написал другой действительно талантливый человек.
Я пытаюсь развернуть проект на удаленном хосте с 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 "partner-test". Вы можете определить профили в разных местах:
pom.xml
)%USER_HOME%/.m2/settings.xml
)%M2_HOME%/conf/settings.xml
)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.
в вашей команде
user@user:~/workspace/pip$ mvn -P production, partner clean install -Dmaven.test.skip=true
"партнер", скорее всего, будет профилем, определенным в файле pom.xml.
вы можете отредактировать этот файл и добавить еще один профиль "partner-test" (скопируйте профиль "partner" и измените то, что вам нужно)
profiles.xml
в базовом каталоге вашего проекта, обычно в том же каталоге, что и ваш pom. Описание можно найти здесь: maven.apache.org/ref/2.2.1/maven-profile/profiles.html . Как может выглядеть такой профильpartner-test
я уже писал. Заполнить недостающие детали зависит от вас. Я не могу этого сделать, потому что у меня нет информации, и я не могу попробовать это.