Eclipse Indigo SR 1,wtp 3.3.0,m2eclipse 1.0.100。
将项目发布到WTP时,我的其中一个依赖项出现了奇怪的行为;它不是将jar放在WEB-INF/lib
文件夹中,而是创建一个以预期jar命名的文件夹,然后将源项树(显然)放在该文件夹下。我无法在依赖项的pom.xml
或此项目的pom.xml
中看到任何可能导致此问题的内容。
正如罐子那样,其他依赖性正好被带来了。
我的测试项目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>
连连呢?还有什么我可以调查试图找出这里发生了什么?
答案 0 :(得分:6)
我的一位同事为我提供了解决问题的方法,但它只需要很少的手动步骤。
从日食中删除项目
使用终端转到您的maven根文件夹并使用此命令终止所有日食内容(您必须执行此操作两次):
$&GT;找 。 -iname“.settings”-exec rm -rf'{}'\; ;找 。 -iname“.project”-exec rm -rf'{}'\; ;找 。 -iname“.classpath”-exec rm -rf'{}'
,执行以下命令:
$&GT; mvn -Dwtpversion = 2.0 eclipse:eclipse
在eclipse中导入你的项目:现在一切都会工作,eclipse会发布包含代码的jar:)
答案 1 :(得分:1)
我建议您尝试使用m2e-wtp插件以及当前安装的m2e插件(不包含对基于WTP的项目的支持)此插件可通过嵌入式Marketplace客户端或网络在Eclipse Marketplace中获得( http://marketplace.eclipse.org/content/maven-integration-eclipse-wtp)。它提供了与WTP更紧密的Maven集成,并且应该通过WTP体验改善整体Maven。
答案 2 :(得分:0)
如果仍然无效,请删除发布文件夹。它看起来像:
<Path To Your IDE>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
首先确保使用IDE从Tomcat或您正在使用的任何其他服务器下删除项目。然后关闭ID或您无法删除该文件夹。
执行此操作后,您可以运行maven clean
/ build
/ install
命令并部署项目。
如果这不起作用,则此问题与IDE或Application Server无关。