[英]Maven not compiling class and there is no class files in war file
iam converting my project to maven. 我将我的项目转换为maven。 I see in war file there is no class file available. 我在war文件中看到没有可用的类文件。
Below is the pom.xml and project structure. 下面是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>
Project structure 项目结构
From my point of view your project structure isn't as maven expects. 从我的角度来看,你的项目结构并不像maven所期望的那样。
In order to solve your problem do the following: 为了解决您的问题,请执行以下操作:
After this process you will have the same structure you had before starting the project but maven will know where to find the source code. 在此过程之后,您将拥有与启动项目之前相同的结构,但maven将知道在何处查找源代码。
Additionally, you can create a resource folder and test folders with the following structure: 此外,您可以使用以下结构创建资源文件夹和测试文件夹:
Project
src
main
java
resources
test
java
resources
This would be the standard maven project structure. 这将是标准的maven项目结构。
By default Maven expects the Java sources to be in src/main/java but your project structure has the sources in src . 默认情况下,Maven希望Java源代码位于src / main / java中,但您的项目结构中包含src中的源代码。 I would recommend that to you adhere to the standard Maven directory layout. 我建议你遵守标准的Maven目录布局。
If you don't want to do that then you can use the sourceDirectory build setting as should below: 如果您不想这样做,那么您可以使用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>
You can use the following lines of code in POM.xml to include java files in war that you have created. 您可以在POM.xml中使用以下代码行来包含已创建的war中的java文件。 Bydefault war exclude .java files while packaging. Bydefault war在打包时排除.java文件。
<resources>
<resource>
<directory>src</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
</resources>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.