【发布时间】:2023-03-13 19:43:02
【问题描述】:
Eclipse Indigo SR 1、wtp 3.3.0、m2eclipse 1.0.100。
将项目发布到 WTP 时,我遇到了其中一个依赖项的奇怪行为;它不是将 jar 放在 WEB-INF/lib 文件夹中,而是创建一个以预期 jar 命名的文件夹,然后将该项目的源代码树(显然)放在该文件夹下。我在依赖项的 pom.xml 或此项目的 pom.xml 中看不到任何可能导致此问题的内容。
其他依赖项被很好地作为 jars 引入。
我的测试项目的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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>dwhwtptest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>dwhwtptest Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.onebusaway</groupId>
<artifactId>onebusaway-nyc-transit-data</artifactId>
<version>2.0.3-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<finalName>dwhwtptest</finalName>
</build>
</project>
这是最终在workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps 发布的内容:
$ find dwhwtptest/
dwhwtptest/
dwhwtptest//index.jsp
dwhwtptest//META-INF
dwhwtptest//META-INF/MANIFEST.MF
dwhwtptest//META-INF/maven
dwhwtptest//META-INF/maven/test
dwhwtptest//META-INF/maven/test/dwhwtptest
dwhwtptest//META-INF/maven/test/dwhwtptest/pom.properties
dwhwtptest//META-INF/maven/test/dwhwtptest/pom.xml
dwhwtptest//WEB-INF
dwhwtptest//WEB-INF/lib
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/META-INF
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/META-INF/MANIFEST.MF
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data/model
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data/model/NycQueuedInferredLocationBean.java
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data/model/NycVehicleManagementStatusBean.java
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data/services
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data/services/ConfigurationService.java
dwhwtptest//WEB-INF/lib/onebusaway-nyc-transit-data-2.0.3-SNAPSHOT.jar/org/onebusaway/nyc/transit_data/services/VehicleTrackingManagementService.java
dwhwtptest//WEB-INF/web.xml
这是依赖项的pom.xml,onebusaway-nyc-transit-data 模块:
<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>
<artifactId>onebusaway-nyc</artifactId>
<groupId>org.onebusaway</groupId>
<version>2.0.3-SNAPSHOT</version>
</parent>
<groupId>org.onebusaway</groupId>
<artifactId>onebusaway-nyc-transit-data</artifactId>
<packaging>jar</packaging>
<name>onebusaway-nyc-transit-data</name>
<description>Common interfaces and classes for exchanging transit data between UI front-end and transit back-end data sources.</description>
<build>
<finalName>onebusaway-nyc-transit-data</finalName>
</build>
</project>
建议?还有什么我可以调查以试图弄清楚这里发生了什么?
【问题讨论】:
-
好的,我似乎有一个解决方法,但我仍然想知道为什么它不能按预期工作。行为不端的依赖项在测试项目的 Web 部署程序集中列出,但我所做的是通过 Eclipse UI 将其删除并重新添加。这次当我将项目添加到服务器并发布时,jar 就在那里,正确。想法?
-
我也有同样的问题。据我所见,从 Eclipse 发布的 webapps 文件夹(您通常会在
/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps 下找到)Eclipse 有时会发布 jar包含源而不是包含类的 jar。这在我的项目中经常发生,我有一个包含多个子项目的大型 Maven 项目。目前解决方法也没有帮助:(我仍在试图弄清楚发生了什么 -
找到一个始终如一的解决方法,请参阅我的答案。
-
This question 也描述了同样的问题,尽管它在询问为什么会发生这种情况
标签: eclipse maven eclipse-wtp