Добрый день.Maven. Развернитесь на стеклянную рыбку с модулями
Я использую «mvn clear package glassfish: deploy» из cmd для развертывания. Это нормально для приложения, которое включает только проект. Но с дочерними модулями у меня есть проблемы с развертыванием.
Эта команда дает мне эту ошибку:
[Ошибка] удаленный отказ: Файл не найден: [здесь проект путь] \ цель \ test2.war
[Ошибка] Развертывание [здесь путь проекта] \ target \ test2.war failed
Как это исправить?
Родителя 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test.net</groupId>
<artifactId>test2</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>child1</module>
<module>child2</module>
</modules>
<name>test2 Maven Webapp</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<configuration>
<glassfishDirectory>${local.glassfish.home}</glassfishDirectory>
<user>admin</user>
<passwordFile>${local.glassfish.passfile}</passwordFile>
<domain>
<name>domain1</name>
<httpPort>8080</httpPort>
<adminPort>4848</adminPort>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>target/${project.build.finalName}.war</artifact>
</component>
</components>
<debug>true</debug>
<terse>false</terse>
<echo>true</echo>
</configuration>
</plugin>
</plugins>
<finalName>test2</finalName>
</build>
</project>
Child1 П:
<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/maven-v4_0_0.xsd">
<parent>
<artifactId>test2</artifactId>
<groupId>test.net</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child1</artifactId>
<packaging>war</packaging>
<name>child1 Maven Webapp</name>
<properties>
<deploy.glassfish>true</deploy.glassfish>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
</plugin>
</plugins>
<finalName>child1</finalName>
</build>
</project>
Child2 П:
<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/maven-v4_0_0.xsd">
<parent>
<artifactId>test2</artifactId>
<groupId>test.net</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child2</artifactId>
<packaging>war</packaging>
<name>child2 Maven Webapp</name>
<properties>
<deploy.glassfish>true</deploy.glassfish>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
</plugin>
</plugins>
<finalName>child2</finalName>
</build>
</project>
Спасибо вам за ответ. Но для развертывания с использованием второго подхода команда развертывания должна выполняться отдельно для каждого ребенка? Причина при выполнении этого в родительском pom У меня есть ошибка, что «glassfish» является неправильным префикс – Evgeniy175
Для второго подхода вам не нужно указывать команду deploy. Попробуйте использовать команду 'mvn clean install' на уровне родительского уровня. Это связано с тем, что материал, связанный с развертыванием, будет заботиться о коде плагина в ваших пемах. Кроме того, вам не нужно использовать команду deploy отдельно для каждого модуля. Ваш родительский pom спровоцирует ребенка poms один за другим, который будет разворачивать дочерние артефакты. Попробуйте приведенную выше команду и сообщите мне. –
Он успешно скомпилирован, дочерние модули теперь содержат «цель» папок. Но без развертывания на стеклянную рыбку – Evgeniy175