这次,我在Eclipse中运行Web App项目时遇到问题。
每当我将我的应用程序提交到SVN时,然后将其构建并使用Jenkins部署到Tomcat容器-该应用程序运行良好,并且使用了正确的MANIFEST.MF。
但是,当我想在Eclipse中(使用Tomcat 8.5容器)对其进行调试时,将使用一个默认清单文件,而不是包含来自pom.xml的自定义属性的清单文件。
我在pom.xml中定义了一些有关应用程序名称,版本等的变量。清单文件在/target/generate-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>
到目前为止,我已经尝试了几乎所有我搜索过的建议,但没有任何效果:(
请帮助!
先谢谢您 汤姆
答案 0 :(得分:0)
好吧
最后我找到了解决方案。原来,我只需要简单地将生成的MANIFEST.MF文件从生成的wtp输出文件夹复制到我的项目META-INF。
在Jenkins上进行构建时-生成的文件总是被文件覆盖,因此这似乎对项目没有害处。