当前位置: 首页 > 面试题库 >

Eclipse + Maven +动态Web项目-> Maven覆盖Deployment Assembly

雍阳
2023-03-14
问题内容

摘要

在Eclipse中,当我“ Maven->更新项目配置”时,“ Maven依赖关系”从项目的“部署程序集”中删除。

细节

我从一个预先配置的Eclipse项目开始:File-> New-> Dynamic Web Project-> JavaServer Face v2.0
Project。为了删除“魔术”,然后将其转换为Maven项目:配置->转换为Maven项目。

pom.xml包含以下内容:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webXml>WebContent/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

然后,为确保在部署之前将Maven依赖项复制到“ WEB-INF / lib/”,我将它们添加到了项目的“部署程序集”中:“项目属性”->“部署程序集”。

我知道有两个相关的问题。

问题

(1) 当我“项目”->“ Maven”->“更新项目配置”时,“
Maven依赖项”已从我的“部署程序集”中删除。有没有办法阻止这种情况的发生,可能是通过某些Maven插件?

(2) 当我从Eclipse中构建.war时,一切正常,.war在Tomcat中运行良好。但是,当我使用Maven从命令行构建它时mvn clean compile war:war,“ WebContent
/”中的.html文件不会添加到.war中。同样,我需要纠正哪些Maven设置/插件?

仅供参考,这是一个非常基本的应用程序……只是一个登录页面和一个欢迎页面。

如果我需要提供其他详细信息(web.xml,faces-config-xml,login.xhtml),请告诉我,我将添加它们。

谢谢

- 编辑 -

Eclipse版本:3.6.2

Eclipse m2e版本:1.0.1

Apache Maven版本:2.2.1

(1)解决方案

更新到Eclipse Java EE 3.7.2(Indigo)。现在还使用m2e-wtp Maven Integration for Eclipse
WTP插件

(2)解决方案

从原型创建新的Maven项目,然后从Eclipse-> Import-> Existing
Maven项目创建。使用新的Eclipse版本和m2e-wtp,Eclipse中的Java EE透视图可以与标准Maven目录结构很好地兼容

pom.xml现在也更简单:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

问题答案:

我会建议迁移到Eclipse的3.7.x(靛蓝),这对于更好地支持 M2E ,并允许您使用 Maven的集成为WTP
(单独的安装),这应使事情更容易。我想您的大多数问题都应该通过更新到Indigo来解决。

安装链接:http :
//marketplace.eclipse.org/node/96737

另请参见此处:Eclipse Indigo / 3.7中的Maven /Tomcat项目

编辑 将Web资源放在 WebContent
下,然后将其添加为WAR插件中的目录可能是一种解决方案。干净的方法是将它们放在src/main/resources或下,src/main/webapp并且应将它们自动包含在WAR文件中。WebContent不是Maven的标准目录之一。



 类似资料:
  • 问题内容: 关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题: 如何使用Maven创建带有servlet,jsp和其他类的Java Web项目? 它创建一个简单的目录结构,src-> main-> java。我在哪里以及如何放置web-inf文件夹? 我是否需要将jdbc-drivers手动添加到web-inf / lib内的文件夹中,还是可以指出依赖项? 有没有办法用

  • 关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题: 如何使用Servlet、jsp和其他Maven类创建Java web项目? 它创建了一个简单的目录结构,src->main->java。我如何将web-inf文件夹放在哪里? 我需要手动将jdbc-drivers添加到web-inf/lib中的文件夹中吗?还是只需要指出依赖关系就可以了? 有没有用JUnit测试serv

  • 我尝试在eclipse中创建一个动态web项目,并将该项目转换为maven项目。我的项目有这样的结构 当我右键单击project>Configure>Convert to Maven project时,我会得到以下错误消息:

  • 问题内容: 似乎有几个问题,这些问题已经很老了,并且从Java 8对Jacoco的支持开始发生了变化。 我的项目包含以下结构 我已经配置了这样的 主POM.xml Pom.xml B pom.xml 我正在执行此命令。我可以看到jacoco.exec正在生成,但是我看不到任何HTML报告正在验证数据。 请帮我解决一下这个。还有一点是,我的配置对项目是否正确? 更新资料 已确定的问题。 变成 现在,

  • 看起来好像什么都没有出问题,但我一定是错过了什么,因为我总是收到这个错误。 下面是my.settings/org.eclipse.wst.common.project.facet.core.xml的内容 在我试图压制这个看似不相关的错误消息时,任何帮助都非常感谢。 编辑:添加了pom.xml内容

  • 在Eclipse中,我有两个项目: 大天使。core——一个Maven项目 ArchangelWEB-一个动态Web项目(为Tomcat构建)。 第一个,大天使。core拥有所有的基本代码,并使用Maven来解决依赖关系。第二个是核心项目之上的Web添加。这只有特定于演示/视图的代码。我想把它们分开,因为我将来可能会有其他项目依赖于核心,我不希望核心项目依赖于Web库。 现在,在大天使网的建造路径