Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven和AppServer依赖关系管理最佳实践_Java_Maven 2 - Fatal编程技术网

Java Maven和AppServer依赖关系管理最佳实践

Java Maven和AppServer依赖关系管理最佳实践,java,maven-2,Java,Maven 2,我正在开发一个web应用程序,并使用maven进行依赖关系管理(duh)。服务器库文件夹中已经提供了一些所需的JAR,但与“maven命名方案”不匹配,即缺少版本后缀 我想将它们用于开发和部署,但是.. 1.我无法将maven指向它们,因为maven似乎需要一个版本后缀。我不能在pom中省略它 2.如果我在maven之外定义依赖项,那么maven显然无法构建 3.重命名服务器发行版中的文件听起来像是一个难题 布莱恩·博伊塔诺会怎么做?我的意思是,肯定有一个我不知道的优雅的解决方案,或者至少有一个

我正在开发一个web应用程序,并使用maven进行依赖关系管理(duh)。服务器库文件夹中已经提供了一些所需的JAR,但与“maven命名方案”不匹配,即缺少版本后缀

我想将它们用于开发和部署,但是..
1.我无法将maven指向它们,因为maven似乎需要一个版本后缀。我不能在pom中省略它
2.如果我在maven之外定义依赖项,那么maven显然无法构建
3.重命名服务器发行版中的文件听起来像是一个难题

布莱恩·博伊塔诺会怎么做?我的意思是,肯定有一个我不知道的优雅的解决方案,或者至少有一个很好的理由支持上面三个解决方案中的一个

多谢各位


另外,我使用的是jboss 5.1和maven 2.2.1 atm,但可能会发生变化

如果这些不是您正在使用的专有LIB,我建议您使用maven repository中的官方版本


如果jar是专有的,您可以使用maven(您可以使用您的版本、后缀、组名、artifactid等)手动将其安装到本地存储库中,然后在pom中使用它们。

如果您想明确标识jar的所在位置,可以将这些jar作为一个具有
系统
作用域的依赖项提供。有关更多信息,请查看

谢谢,我已经找到了如何将mvn指向本地JAR的方法,但仍然存在版本后缀问题…对此也有想法吗?后缀问题是什么意思?如果您在依赖项中提供system和fullPathFileWithoutVersionSuffix.jar,那么您应该很好。我的坏消息是,maven没有显式指向jar,而是指向lib文件夹。现在可以工作:)并且使用${env.JBOSS_HOME}系统的作用域没有那么糟糕,谢谢。看起来您的解决方案是忽略jar已经存在的事实,只需遵循常规过程。这是一个我没有提到的选项,但是:1。我希望避免对通用JAR和2进行冗余部署。为什么您更喜欢由服务器发行版提供的repo jar?@kostja 1。因为这就是maven的工作原理,如果你不喜欢它,就不要使用它。您必须具有artifactId、groupId等。它们基本上是一样的,但是如果你想跟踪最新版本,maven为你做这件事要比你关心的容易。我担心项目工具的选择并不总是个人喜好,至少不是我个人喜好:)顺便说一句,我真的很喜欢maven,在用过蚂蚁之后,你不得不这么做。我只是对它有点陌生。你如何在“mvn方式”的webapps之间共享jar而不复制它?@kostja maven与ant不同的是,它不仅仅是构建工具,还有更多。“约定优先于配置”意味着我想怎么做就怎么做(maven),你会玩得很开心,这至少是我的理解,但我可能错了。我想我应该把这个问题命名为“如何避免maven的冗余jar部署”。因此,到目前为止,我有两个“最佳实践”——c0mrade的“不要试图变得聪明”,dimitrisli的“为本地LIB使用系统范围”。不过,系统作用域应该有点不推荐使用。我想知道对于像JBOSS_HOME这样的环境变量的相对路径,这种反对意见是否仍然有效