我的Eclipse项目结构如下:
my.core.webapp pom:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my.company</groupId>
<artifactId>my.core.webapp</artifactId>
<version>1</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
.
</dependencies>
</project>
my.extended.webapp pom:
<dependency>
<groupId>my.company</groupId>
<artifactId>my.core.webapp</artifactId>
<version>1</version>
<type>war</type>
</dependency>
当我使用maven编译时,我得到了各种包,xyz不存在例外。
有没有办法(没有第3个项目或使用模块)来实现这个目标?
答案 0 :(得分:0)
你必须在这做两件事。
首先,将<attachClasses>true</attachClasses>
添加到my.core.webapp pom.xml中的maven war插件配置中。所以现在看起来应该是
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<attachClasses>true</attachClasses>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
当您在my.extendend.webapp pom.xml中指定my.core.webpp作为依赖项时,要做的第二件事是添加<classifier>classes</classifier>
。所以现在看起来应该是
<dependency>
<groupId>my.company</groupId>
<artifactId>my.core.webapp</artifactId>
<version>1</version>
<type>war</type>
<classifier>classes</classifier>
</dependency>
应该是全部。
答案 1 :(得分:0)
我设法根据@ ritz-xavi答案来解决问题。
my.core.webapp pom:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<attachClasses>true</attachClasses>
<webXml>${basedir}/WebContent/WEB-INF/web.xml</webXml>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
my.extended.webapp pom:
<dependency>
<groupId>my.company</groupId>
<artifactId>my.core.webapp</artifactId>
<version>1</version>
<classifier>classes</classifier>
<type>jar</type>
</dependency>
<dependency>
<groupId>my.company</groupId>
<artifactId>my.core.webapp</artifactId>
<version>1</version>
<type>war</type>
</dependency>
包括战争和jar类都可以解决问题。