#java #eclipse #maven
#java #eclipse #maven
Вопрос:
Я новичок в maven. Я работал над проектом maven в eclipse с 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>
<parent>
<groupId>com.walmart.move.nim.damage</groupId>
<artifactId>damages-external-services-parent</artifactId>
<version>1.0.36-SNAPSHOT</version>
<packaging>war</packaging> #### THIS LINE IS GIVING ERROR
</parent>
<artifactId>damages-external-services</artifactId>
<name>damages-external-services</name>
<description>Damages external services. This is the war.</description>
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
<springframework.version>4.3.4.RELEASE</springframework.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.javadoc.skip>true</maven.javadoc.skip>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${springframework.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>7.0.62</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.walmart.move.nim.damage</groupId>
<artifactId>damages-utils</artifactId>
<version>1.0.2214</version>
<!-- <version>1.0.4-SNAPSHOT</version> -->
</dependency>
</dependencies>
Из-за вышеупомянутой строки упаковки при выполнении чистой установки mvn в eclipse возникает следующая ошибка:
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Malformed POM /Users/a0m0466/workspace/damage.damages-orchestrator.dc-external-services/damages-external-services/pom.xml: Unrecognised tag: 'packaging' (position: START_TAG seen ...</version>n <packaging>... @7:16) @ /Users/a0m0466/workspace/damage.damages-orchestrator.dc-external-services/damages-external-services/pom.xml, line 7, column 16
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project com.walmart.move.nim.damage:damages-external-services:1.0.36-SNAPSHOT (/Users/a0m0466/workspace/damage.damages-orchestrator.dc-external-services/damages-external-services/pom.xml) has 1 error
[ERROR] Malformed POM /Users/a0m0466/workspace/damage.damages-orchestrator.dc-external-services/damages-external-services/pom.xml: Unrecognised tag: 'packaging' (position: START_TAG seen ...</version>n <packaging>... @7:16) @ /Users/a0m0466/workspace/damage.damages-orchestrator.dc-external-services/damages-external-services/pom.xml, line 7, column 16 -> [Help 2]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/ModelParseException
Комментарии:
1.Вы уверены, что
<packaging>
внутри<parent>
?2. Да, правильно. Я просто исправил это сейчас, поместив его после <name>
Ответ №1:
<packaging>
Тег упаковки должен быть вне </parent>
тега.
</parent>
<packaging>war</packaging>
Ответ №2:
Родительский POM может быть объявлен с помощью packaging pom. Он не предназначен для распространения, поскольку на него ссылаются только из других проектов.
Родительский pom Maven может содержать практически все, и они могут быть унаследованы в дочерних файлах pom, например
Родительский 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;
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>Examples</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Parent POM</name>
<url>http://maven.apache.org</url>
<properties>
....
Дочерний 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/maven-v4_0_0.xsd">
<!--The identifier of the parent POM-->
<parent>
<groupId>com.demo</groupId>
<artifactId>Examples</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Examples</artifactId>
<name>Child POM</name>
<packaging>jar</packaging>
<dependencies>
....
Для получения дополнительной информации https://howtodoinjava.com/maven/maven-parent-child-pom-example /