【发布时间】:2011-07-02 15:38:43
【问题描述】:
我的项目中有一些服务器 jars 我想迁移到 maven ..
我不知道如何将依赖项附加到这些 jars.. 几乎有 24 个 jars.. 那么如何将它们添加到项目范围
【问题讨论】:
-
服务器 jar 是什么意思?它们是在编译时需要还是在运行时需要,还是两者都需要?
-
它们在编译时和运行时都是必需的。
我的项目中有一些服务器 jars 我想迁移到 maven ..
我不知道如何将依赖项附加到这些 jars.. 几乎有 24 个 jars.. 那么如何将它们添加到项目范围
【问题讨论】:
您可以采取的方法取决于您是否有权访问这些“服务器”jar 的来源。如果你这样做了,那么没有什么能阻止你创建一个/多个 Maven 项目,打包这些项目并将它们部署到你的 Maven 存储库中。
如果您无权访问源并且这些在官方 Maven 存储库中尚不可用,那么您所能做的就是使用 maven install 将它们放入您的 Maven 存储库:
通常,您需要将 3rd 方 JAR 放入本地存储库中,以便在构建中使用。 JAR 必须放置在本地存储库中的正确位置,以便 Maven 正确拾取它。为了使这更容易,更不容易出错,我们在安装插件中提供了一个目标,应该使这相对容易。
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
完成所有这些 jar 文件后,只需将依赖项添加到您的项目中即可。
【讨论】:
我不建议您在 POM 中添加服务器 jar,而我只使用 API jar
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
优点是您符合可移植标准。如果 M2E 支持 API,它会正确编译并在部署到运行时时仍能正确运行您的应用程序。
如果您想明确地看到它,您可以通过转到项目首选项然后转到目标运行时来添加运行时。您只需要在 EAR 上完成它就会为您完成 EAR 中包含的项目。添加目标运行时的好处是 Eclipse 可能会针对您的服务器进行额外的验证。
【讨论】: