猿问

Maven 构建 - 类文件大小减小

我正在尝试对现有项目进行 mavenize。我能够构建 EAR 文件(因为我必须在 Websphere 中部署),当我尝试部署时,使用管理控制台 - 能够成功安装,但应用程序无法正常工作,经过调查,我发现class files大小比较小到参考 EAR 文件(旧的现有 EAR 文件)

我构建 EAR 文件所遵循的步骤

  1. 已安装 M2E 插件

  2. 配置到 Maven

  3. 从下面的文件夹中添加所有jar 文件lib(我在 SO 中阅读,这不是推荐的方式,但要完成项目,我必须这样做)

<dependency>

<groupId>JarFile</groupId>

<artifactId>JarFile</artifactId>

<version>1.0</version>

<scope>system</scope>

<systemPath>${basedir}/WebContent/WEB-INF/lib/CRDBXMLExternal.jar</systemPath>

</dependency>

  1. 添加了相关插件(war, EAR)

  2. 干净的构建和安装。

  3. ear创建的文件。ear包含一个war文件,其中包含所有与项目相关的文件,包括classjsp

我将文件夹结构与现有的 EAR 文件及其内容进行了比较,看起来都不错。但只有类文件的大小(不是全部,但超过 80%)是不同的。我使用 JD 来decompile查看代码,大部分代码都不存在,包括imports.

如果有人遇到过类似的问题,请告诉我这里做错了什么。


素胚勾勒不出你
浏览 113回答 2
2回答

慕后森

上面没有告诉 Maven 用lib目录依赖打包 EAR 文件。它实际上告诉它在仅在编译时提供的现有 JAR 上创建本地依赖项。因此,当您导出 EAR 时,它不包括任何 JAR,因为它假定它们是在运行时提供的。您应该改用打包 EAR 文件的 maven-ear-plugin。您可以在此处找到完整的文档。&nbsp; <plugin>&nbsp; &nbsp; <artifactId>maven-ear-plugin</artifactId>&nbsp; &nbsp; <version>3.0.1</version>&nbsp; </plugin>

慕无忌1623718

问题是,&nbsp;web/WebContent/WEB-INF/classes没有得到更新。但我可以看到最新classes的web/target/classes路径。现在正在检查为什么web/WebContent/WEB-INF/classes没有得到更新。刚刚从下面的链接中获得了解决方案:-在&nbsp;https://coderanch.com/t/474423/ide/ecplise-doesn-create-classes-folder的帮助下解决了问题脚步右键单击您的项目->构建路径->配置构建路径->单击源选项卡->单击浏览(默认输出文件夹)。浏览后点击 WebContent -> 选择 WEB-INF -> 创建新文件夹(称为类)。它将打开新窗口。将文件夹名称作为类。单击高级并给出当前类文件夹的路径表示 WEB-INF/类。完成此操作后,eclispe 将重建您的项目,并且将在 WEB-INF/classes 目录中生成类。
随时随地看视频慕课网APP

相关分类

Java
我要回答