【发布时间】:2011-03-26 05:02:00
【问题描述】:
我是从 Ant 的角度来的,所以请原谅我。我意识到这里已经有很多关于如何构建依赖项的问题,但似乎没有一个问题能说明如何做需要做的事情。
问题 1: 目前,结合使用 maven-war-plugin,当我运行 mvn war:war 时,它会在目标文件夹中创建一个 war 文件夹。
但是,我希望将所有依赖项的 jar 复制到由 google eclipse 插件设置的 war/WEB-INF/lib(启用 gae,禁用 gwt),而不覆盖 google eclipse 插件放置在那里的 jar。
我不想设置战争文件或战争目录。我只需要将所有非 gae jar 与 gae jar 复制/合并,这样当项目作为 gae web 应用程序运行时,Eclipse 就不会抱怨 ClassNotFoundException。
问题 2: 在 Eclipse 中使用 Ant 时,我可以在 Eclipse 中运行 Ant 目标。
现在,我必须从 shell 窗口执行 mvn 命令(这相互忽略了 Eclipse 会话的存在)。似乎唯一自动完成的事情是每当我更新依赖项时。
有没有一种方法或任何 Eclipse 插件可以让我在 Eclipse 中运行 mvn 目标?
其他信息:
mvn dependency:copy-dependencies 坚持复制到target/dependency 目录,内容如下:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>process-resources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/war/WEB-INF/lib/</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeArtifactIds>gwt-user,gwt-dev</excludeArtifactIds>
</configuration>
</execution>
</executions>
</plugin>
我什至尝试更改为绝对路径
<outputDirectory>
/home/geek/eclipse/workspace/Demo-autoshoppe/holycow
</outputDirectory>
但是 Holycow 目录仍然是空的,mvn 仍然坚持复制到target/dependency 目录。我目前的解决方案是将target/dependency 软链接为war/WEB-INF/lib,这是一个非常非常糟糕的组合。为什么 maven 对 outputDirectory 规范不敏感?我正在使用 Ubuntu 的 maven 2.2。
【问题讨论】:
-
请注意,m2e - Eclipse Maven 插件 - 在 Eclipse 3.8 中变得非常非常好。
标签: eclipse google-app-engine maven-2