我将我的项目转换为maven。 我在war文件中看到没有可用的类文件。
下面是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>RetailProducts</groupId>
<artifactId>RetailProducts</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>RetailProducts</name>
<dependencies>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<!-- Tomcat 6 need this -->
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<finalName>JavaServerFaces</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<!-- <configuration> section added to pick up the WEB-INF/web.xml inside WebContent -->
<configuration>
<webResources>
<resource>
<directory>WebContent</directory>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
项目结构
答案 0 :(得分:16)
从我的角度来看,你的项目结构并不像maven所期望的那样。
要解决您的问题,请执行以下操作:
在此过程之后,您将拥有与启动项目之前相同的结构,但maven将知道在何处查找源代码。
此外,您可以使用以下结构创建资源文件夹和测试文件夹:
Project
src
main
java
resources
test
java
resources
这将是标准的maven项目结构。
答案 1 :(得分:16)
默认情况下,Maven希望Java源代码位于 src / main / java 中,但您的项目结构中包含 src 中的源代码。我建议您遵守standard Maven directory布局。
如果您不想这样做,那么您可以使用sourceDirectory构建设置,如下所示:
<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">
...
<build>
<sourceDirectory>${basedir}/src</sourceDirectory>
</build>
</project>
答案 2 :(得分:-4)
您可以在POM.xml中使用以下代码行来包含您已创建的war中的java文件。 默认战争在打包时排除.java文件。
<resources>
<resource>
<directory>src</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
</resources>