当前位置: 首页 > 知识库问答 >
问题:

带maven工作区依赖项的Eclipse—打包的war包含文件夹而不是jar

葛勇锐
2023-03-14

我将Eclipse开普勒SR2与m2e结合使用。我有一个依赖于jar的web项目。

当我使用“运行为-

我使用maven war插件2.4版。

这是我的战书:

<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>
  <parent>
    <groupId>com.modelity.loans</groupId>
    <artifactId>loans-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>loans-web</artifactId>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
        <groupId>com.modelity.loans</groupId>
        <artifactId>loans-core</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>jar</type>
    </dependency>
  </dependencies>


  <build>
      <plugins>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
        </plugin>
      </plugins>
  </build>
</project>

这是依赖jar的工件坐标:

<parent>
    <groupId>com.modelity.loans</groupId>
    <artifactId>loans-lib</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>loans-core</artifactId>
<packaging>jar</packaging>

我已经查看了maven包目标的调试输出。当war插件处理jars时,它说

[DEBUG] Processing: loans-core-0.0.1-SNAPSHOT.jar

但不表明罐子已被复制。稍后在日志中我看到:

adding directory WEB-INF/lib/loans-core-0.0.1-SNAPSHOT.jar/

我尝试过嵌入式maven(3.0.4)和外部maven(3.0.5)。我的同事使用开普勒SR1,也遇到了同样的问题。

我想我已经涵盖了一切。如果找不到任何关于它的错误报告,我很乐意提供一些建议。

谢谢,利奥

共有2个答案

东方淇
2023-03-14

现在我们有了2018年,eclipse v2018-09中仍然存在这个问题。工作区中存在的Maven依赖项被分解成WEB-INF/lib文件夹。

找到了这个旧的错误报告https://issues.jboss.org/browse/JBIDE-22157关于这种行为。

解决方案是在maven项目设置中禁用“工作区项目的依赖项解析”。

问候,马库斯

公西天逸
2023-03-14

尝试将jar安装为自己的maven控制工件:

mvn install:install-file -Dfile=my.jar -DgroupId=com.mycorp -DartifactId=my-jar -Dversion=1.0 -Dpackaging=jar

然后把它定义为你的战争的专家依赖

 类似资料:
  • 问题内容: 我在Eclipse中有一个对我的工作区中的另一个Java项目有依赖性的对象。在内置的Tomcat服务器中运行Web项目时,我已将项目依赖项添加到 运行配置中 的类路径中。我想创建一个WAR,用于在外部服务器上部署Web项目。依赖性Java项目已添加到Eclipse中的 Java Build路径 ,但是当我导出WAR文件时,该库不包括在内。还可以在 Order and Export中 选

  • 我正在开发一个Java项目,使用maven作为依赖项管理器/构建工具。我当前在将依赖项的依赖项解析到正确版本时遇到问题。 有问题的依赖项称为JasperReports-Functions-6.1.0.jar,它不是托管在maven repo中,而是以jar形式提供的。 如何强制jar依赖项使用子依赖项的某个版本?

  • 问题内容: 我面临一个问题,即如何使用简单的WAR和JBoss7应用程序服务器的EJB3模块正确打包我的企业(EAR)应用程序。事实是,EJB模块正在使用XML- RPC库(来自Apache),在EAR部署期间,Im仍在获取(来自该xmlrpc库的类)。 事实是,maven- ejb -plugin不会 将 依赖关系打包在最终的EJB jar中,而maven- ear -plugin会将其打包在E

  • 问题内容: 有没有一种方法可以强制maven(2.0.9)将所有依赖项包含在单个jar文件中? 我有一个构建到单个jar文件中的项目。我希望将依赖项中的类也复制到jar中。 更新:我知道我不能只在jar文件中包含jar文件。我正在寻找一种方法来解压缩指定为依赖项的jar,并将类文件打包到我的jar中。 问题答案: 你可以使用带有描述符的插件来执行此操作。这是我们之一的相关块,它可以完成此任务:

  • 本文向大家介绍用Maven打成可执行jar,包含maven依赖,本地依赖的操作,包括了用Maven打成可执行jar,包含maven依赖,本地依赖的操作的使用技巧和注意事项,需要的朋友参考一下 因为今天一个朋友学习过程中用到了maven项目编写代码,到了最后打包阶段打的包不能运行,一时我也没想起来具体操作步骤,后来我百度学习了一下,特此记录下,以便后续自己查阅。 maven项目中不可避免的需要用到依

  • 我使用Apache Maven来管理我的Java库(jar)和一些使用这些库的项目。为了方便起见,我使用生成Eclipse项目文件,这些文件可以导入Eclipse工作区进行编辑。 当我在同一个Eclipse工作区中编辑主项目和Java库项目时会出现问题。也就是说,在文件中包含了src路径依赖项,而不是预期的依赖项。 和工作完美,其中是从我的repo自动下载的。但是,当尝试时,我发现生成的文件没有像