0

我有两个 GAE Java 项目,A 和 B。我想在 B 中使用 A 中的一些成熟类(当然,也继续在 A 中使用它们)。这两个项目都是使用 maven 创建的,然后导入到 Eclipse 中(在我看来,这有点使 maven 成为主要的,Eclipse 是次要的 :-)。

保持 Maven 主要的最佳方法是什么?

我希望解决方案类似于:

  • 创建一个新的 maven 项目 C.
  • 将公共类移至 C。
  • 在 A 和 B 的 pom.xml 中包含 C 作为依赖项(可以在不首先将 C 作为 jar 导出的情况下执行此操作吗?)。

希望在此之后我将能够相互独立地运行和测试(主要是通过运行来完成mvn appengine:devserver)A 和 B。

我对 maven 的了解是有限的,所以我如何创建(例如,使用哪个原型)这个项目 C 使得:

  • 它将作为独立的 Eclipse 项目成功导入,
  • 可以作为罐子出口(如果需要),并且,
  • 当 C 更改时触发 A 和 B 的重新构建,无论是运行时的 Eclipse 自动重新编译还是 maven 重新编译mvn appengine:devserver

如果有更好但完全不同的解决方案,我也不介意考虑。

配置:

  • 操作系统:OS X 10.9.5
  • 行家:3.1.1
  • Eclipse:开普勒(4.3)与 m2eclipse
  • 爪哇:1.7.0_45

谢谢!!

4

2 回答 2

1

好吧,您非常接近“正确且正确”的解决方案。你把它写在你的问题中:-)

  • 创建一个新的 maven 项目 C.
  • 将公共类移至 C。构建 (mvn clean install) 项目 C。因此,JAR 将位于您的本地存储库中。
  • 现在您可以在 A 和 B 的 pom.xml 中包含 C 作为依赖项。

请注意,正如您所提到的,如果项目 C 有任何更改,则必须重新编译项目 A+B。

当然,C.JAR 已经可以使用了,它与 Eclipse 等任何 IDE 都不相关。

于 2015-03-09T11:16:54.733 回答
1

关于使用哪个原型,您可以使用 maven quickstart 原型:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart

来自:https ://maven.apache.org/archetype/maven-archetype-bundles/maven-archetype-quickstart/

于 2015-03-09T15:23:00.097 回答