我是从蚂蚁的角度来的,所以请原谅我。我意识到这里已经有很多关于如何 Maven 依赖项的问题,但它们似乎都没有告诉我们如何做需要做的事情。
问题1:
目前,结合使用 maven-war-plugin,当我运行 mvn war:war 时,它会在目标文件夹中创建一个 war 文件夹。
但是,我希望将所有依赖项的 jar 复制到由 google eclipse 插件设置的 war/WEB-INF/lib (启用 gae,禁用 gwt),而不覆盖 google eclipse 插件放置在那里的 jar。
我不想设置 war 文件或 war 目录。我只需要复制/合并所有非 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
as war/WEB-INF/lib
,这是一个非常非常糟糕的拼凑。为什么maven对outputDirectory规范不敏感?我使用的是Ubuntu的maven 2.2。