【发布时间】:2019-05-13 18:27:12
【问题描述】:
这次我在 Eclipse 中运行我的 Web App 项目时遇到了问题。
每当我将我的应用程序提交到 SVN 时,然后使用 Jenkins 构建它并部署到 Tomcat 容器 - 应用程序运行良好,并且使用了正确的 MANIFEST.MF。
但是,当我想在 Eclipse 中调试它(使用 Tomcat 8.5 容器)时 - 使用了一个默认清单文件,而不是包含我来自 pom.xml 的自定义属性的清单。
我在 pom.xml 中定义了一些关于应用程序名称、版本等的变量。清单文件正在 /target/generated-resources/m2e-wtp/webResources/META-INF/MANIFEST.MF 中生成。此文件包含我的所有自定义属性。
但是当我打电话时
resources = getClass().getClassLoader()
.getResources("META-INF/MANIFEST.MF");
返回的路径是:/META-INF/MANIFEST.MF。该文件确实存在,但几乎是空的:
清单版本:1.0
类路径:
这是我的 pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<!-- Exclude an unnecessary file generated by the GWT compiler. -->
<!-- <packagingExcludes>WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**</packagingExcludes>-->
<manifest>
<addClasspath>true</addClasspath>
<addDefaultImplementationEntries>false</addDefaultImplementationEntries>
</manifest>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
<manifestEntries>
<Specification-Title>${project.name}</Specification-Title>
<Specification-Version>${project.version}</Specification-Version>
<App-Version>${build.version}</App-Version>
<Build-Number>${build.number}</Build-Number>
<SVN-Revision>${rev.number}</SVN-Revision>
<Sys-Name>${sys.name}</Sys-Name>
<Sys-Full-Name>${sys.full.name}</Sys-Full-Name>
</manifestEntries>
</archive>
<!-- <packagingExcludes>WEB-INF/classes/META-INF/MANIFEST.MF</packagingExcludes> -->
</configuration>
</plugin>
到目前为止,我已经尝试了几乎所有我在谷歌上搜索过的建议,但没有任何效果:(
请帮忙!
提前谢谢你 汤姆
【问题讨论】:
标签: eclipse maven manifest.mf