我正在努力使一个现有的项目变得更加专业化。我能够构建EAR文件(因为我必须在Websphere中部署),当我尝试部署时,使用管理控制台-能够成功安装,但应用程序不工作,在调查后,我发现类文件
的大小与参考EAR文件(旧的现有EAR文件)相比非常小
构建EAR文件所遵循的步骤
<dependency>
<groupId>JarFile</groupId>
<artifactId>JarFile</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/WebContent/WEB-INF/lib/CRDBXMLExternal.jar</systemPath>
</dependency>
我将文件夹结构与现有的EAR文件及其内容进行了比较,看起来都不错。但只有类文件的大小(不是全部,而是超过80%)是不同的。我使用JD进行反编译
并查看代码,大部分代码都不存在,包括导入
。
如果有人遇到过类似的问题,你能告诉我我在这里做错了什么吗。
更多信息
有两个项目文件夹(都是maven),一个将创建WAR,另一个是EAR-in-EAR pom。xml有一个依赖关系
<dependency>
<groupId>com.comp.abc</groupId>
<artifactId>abc</artifactId>
<version>1.0</version>
<type>war</type>
</dependency>
还有一个插件
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10</version>
<configuration>
<version>5</version>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<generatedDescriptorLocation>C:\COMP\Dev\may\repos\0.0.1-SNAPSHOT</generatedDescriptorLocation>
</configuration>
</plugin>
</plugins>
</build>
添加WAR文件构建(删除了大多数依赖项,只保留了一个示例)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>com.comp.abc</groupId>
<artifactId>abc</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>ABC</name>
<description>ABC</description>
<dependencies>
<!-- Local Repository -->
<dependency>
<groupId>com.ibm.ws.runtime</groupId>
<artifactId>com.ibm.ws.runtime</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/WebContent/WEB-INF/lib/com.ibm.ws.runtime.jar</systemPath>
</dependency>
</dependencies>
<repositories>
<repository>
<id>nexus-releases</id>
<name>nexus</name>
<url>http://abc-nexus.ldn.xyz.com:9080/nexus/content/groups/public/</url>
</repository>
</repositories>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- <warSourceDirectory>${project.basedir}\WebContent</warSourceDirectory> -->
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
问题是,web/WebContent/WEB-INF/class
没有更新。但我可以在web/目标/类
路径下看到最新的类
。现在正在检查为什么web/WebContent/WEB-INF/class
没有更新。
刚才从下面的链接中得到了解决方案:-问题由在的帮助下解决https://coderanch.com/t/474423/ide/ecplise-doesn-create-classes-folder
台阶
右键点击你的项目-
浏览后点击WebContent-
将文件夹名称指定为类。点击Advanced并给出当前类文件夹的路径意味着WEB-INF/classes。
完成此操作后,eclispe将重建您的项目,并在WEB-INF/classes目录中生成类。
上面并没有告诉Maven用lib
目录依赖项打包EAR文件。它实际上告诉它在一个只在编译时提供的现有JAR上创建本地依赖关系。因此,当导出EAR时,它不包括任何JAR,因为它假定它们是在运行时提供的。
你应该使用maven-ear-plugin哪个包一个EAR文件代替。你可以在这里找到完整的留档。
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>3.0.1</version>
</plugin>
如何减少Maven可执行Jar文件大小。目前为255 MB。它不允许在Cloudform中部署。 我正在通过云信息进行部署 - 如果我能将文件从255 MB减少,那么我的问题就解决了。 我从JAR文件中看到,下面2个依赖项占用了195 MB。 我应该怎样减少它? 完整的Pom XML文件是- 砰.xml - 4 . 0 . 0 org . spring framework . boot sprin
问题内容: 有什么办法可以减少jar文件的大小? 我想要一个减少未使用依赖性的工具。 我使用Maven进行依赖管理。 问题答案: 从Maven的角度来看,JAR文件通常不包含依赖项。因此,您必须在谈论: WAR或EAR或类似文件, 通过合并大量JAR文件而产生的所谓的UberJAR文件;例如使用Maven阴影插件,或 依赖比Maven模块更精细。 在前两种情况下,可以通过在依赖关系规范或war或s
问题内容: 我用Xcode 6.1和Swift制作了一个非常简单的iPhone应用程序。我对ios开发真的很陌生,遇到了一个134 mb的应用程序!当然这是不可接受的。 我的所有屏幕尺寸的背景图像加起来总计20 mb。就是这样!我将这些图像存储在xcassets中,因为那是我猜的首选方式。 我认为该应用程序不应超过25 mbs。 我发现我的项目中有一些参考文献加倍。我删除了这些,但我的.app文件
我想减少一个胖springboot jar文件的占用空间。 这个问题的答案实际上涵盖了开发占用空间更小的spring boot应用程序的所有内容 2-有没有列出我必须排除的自动配置类,我可以去调试看看springboot是自动配置的什么,并拾取我不需要的,但是我正在寻找一些东西,比如一个脚本来检查代码,并给我一个我必须排除的自动配置类的列表。 Gradle用于依赖关系管理。
问题内容: 我已经为Java项目开发了一个模块。该模块取决于外部库()。问题是,该文件比整个项目本身(14 MB)大两倍。我仅使用库中类的一小部分。该模块现已完成,将来没有人会对其进行扩展。有没有一种方法可以将相关类仅提取给某些类,以便其他人不必下载所有这些额外的内容? 问题答案: ProGuard之类的混淆工具通常提供从jar文件中删除未使用的类(甚至字段和方法)的功能。但是,您必须小心确认所有
问题内容: 我正在使用appengine-maven-plugin构建我的Java Google App Engine项目。 我在WEB-INF子文件夹中包含.p12证书 当我构建应用程序时,证书的文件大小增加了几KB。这使其无效。我也看到过同样的情况。jks证书。 我已经验证了证书预构建的有效性,并使用相同的方法来确认构建后证书的有效性。 谁能告诉我为什么文件大小在变化,为什么不将其简单地复制到