java - JSP Maven 项目不会在 Eclipse 中包含 src 文件夹

标签 java eclipse maven jsp servlets

我有一个使用 Maven 配置的简单 JSP 项目。我有一个标准 src/main/java 文件夹,其中有一个名为 MyTest.java 的类。

我像往常一样将此 src 文件夹添加到构建路径中。当我使用 Maven 创建 war 时,该类就在那里。

我已经检查了 .classpath 并且 src 文件夹如下:

<classpathentry kind="src" output="target/classes" path="src/main/java">
    <attributes>
        <attribute name="optional" value="true"/>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

注意到它出于某种原因说“可选”吗?我不知道为什么会这样。

我的构建路径如下(涂黑的部分是 secret ,它只是一个项目依赖项,没有问题):

enter image description here

enter image description here

我的 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>[CONFIDENTAL]</groupId>
<artifactId>auth-java-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<dependencies>
    //... dependencies here
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

当我在嵌入式 Eclipse 服务器上运行它时,这就是所有这些内容的放置位置:

C:/Users/User/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/auth-java-example/

但是当我检查这个文件夹时,所有 src 文件夹都丢失了...我无法弄清楚,这里有什么问题吗?

谢谢

最佳答案

通常,您的源文件夹永远不会包含在 war 或任何其他部署中。 相反,部署将包含已编译的类。这些可以在 WEB-INF/classes 中找到。目录和WEB-INF/lib通常,用于您的依赖项。

如果你想将文件包含到你的 war 中,只需将它们放入src/main/webapp 。您的类路径与将打包到部署中的内容之间存在差异。另外,不要混淆 Maven 构建路径和 Eclipse 类路径。如果您的程序在 Eclipse 中编译良好(使用来自 Maven 的类路径派生程序),则您的 Maven 依赖项很可能是正确的。

但还有更多内容。例如,通常情况下,您的项目中需要由 servlet 容器或应用程序服务器提供的标准库。您需要将它们标记为 <scope>provided</scope>在你的maven pom中,所以它不会被打包到war中。

关于java - JSP Maven 项目不会在 Eclipse 中包含 src 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58970569/

相关文章:

java - 玩!没有正确关闭 H2

使用两个版本的 Eclipse 进行 Java 编译

eclipse - manifest.mf 在 jar 导出期间被 Eclipse 覆盖

java - 添加 Maven 依赖项时会发生什么?

java - PMD+Maven+JAVA 错误::找不到资源规则集/comments.xml。确保资源是有效的文件或 URL 或者在 CLASSPATH 上

java - 使用 maven 进行 junit 插件测试的代码覆盖率

java - 来自 JSON 解析器的意外结果

java - 同时选择2个JTextarea中的文本

java - 尝试使用 Snackbar 时出现 InflateException

java - 分离 Yourkit session