Java 我想使用反射的MySQL,但是必须硬编码MySQL jar文件——我可以从Maven下载最新版本吗?

Java 我想使用反射的MySQL,但是必须硬编码MySQL jar文件——我可以从Maven下载最新版本吗?,java,mysql,eclipse,maven,Java,Mysql,Eclipse,Maven,我有一个访问MySQL的通用工具jar文件。当我查看jar文件时,我看到它大约有11MB,包括MySQL和ProtoBuf,而我自己的代码大约是.5MB。MySQL只被我的几个工具使用,所以我想下载MySQL的东西,并为MySQL函数使用反射 反射代码现在可以工作了,但是MySQL jar文件位置和版本号必须硬编码。它还依赖于Eclipse(.m2)。我想做的是总是下载最新版本的MySQL,并使用它。我想我可以使用Maven函数来下载最新的版本号,但我不知道从那里可以去哪里!有人建议以太-它仍然

我有一个访问MySQL的通用工具jar文件。当我查看jar文件时,我看到它大约有11MB,包括MySQL和ProtoBuf,而我自己的代码大约是.5MB。MySQL只被我的几个工具使用,所以我想下载MySQL的东西,并为MySQL函数使用反射

反射代码现在可以工作了,但是MySQL jar文件位置和版本号必须硬编码。它还依赖于Eclipse(
.m2
)。我想做的是总是下载最新版本的MySQL,并使用它。我想我可以使用Maven函数来下载最新的版本号,但我不知道从那里可以去哪里!有人建议以太-它仍然有效吗


TIA

我想您可以使用最新版本的快照。据我所知,如果您使用-SNAPSHOT,Maven每天都会搜索新版本。

我有一个可行的解决方案,使用Curl从Maven访问信息两次:一次找出最新版本的mysql connector java(jar文件),另一次下载它。这是可行的,但我同意@Taylor的观点,我会看看是否能想出一个无反射的解决方案。不过,我将结束这个问题。

Maven可以支持依赖范围,请参阅。注意,这个jar是在构建时解析的。我不确定它是否能解决您的问题,因为它只会影响您构建jar的方式。关于您的方法,值得注意的一点是,jar中的更改可能会引入破坏向后兼容性的更改。通过尝试使用反射与mysql交互,您正在将编译时错误转化为运行时错误。@Taylor在您的最后一句话中有一个很好的观点-然而,我的系统是面向组件的,我希望避免让我支持的每一个新软件都膨胀到我的jar文件中。。。你(或其他人)有没有我没有想到或不知道的包装方法?如果您不需要构建一个“胖jar”,那么您可以根据已知的依赖项只编译和发布代码,并管理一个在类路径上具有所有必需lib的应用程序环境。这将允许您在所述应用程序环境中独立升级依赖项。但是,从本质上讲,您是在以管理应用程序环境所需的时间为代价来节省带宽和磁盘空间。胖罐子很受欢迎,因为它们很容易,通常磁盘和badnwidth的价格很低。另外,拥有代表你的应用程序的原子工件也很好。谢谢,@Taylor,但是当我在我的类路径中包含MySQL jar文件时,它被包含在我自己的jar文件中,这意味着所有未来的用户都会在jar文件中看到MySQL,无论他们是否需要它。。。或者是其他什么东西在拉mysql jar文件。。。?对不起,有点慢!这完全取决于你如何构建你的罐子。您可以在运行时指定类路径,而不将其放在jar中。如何将其从jar中排除取决于构建jar的方式。Maven默认情况下不会创建胖jar,但可以这样做:或者使用各种插件。如果您将依赖项指定为
提供的
范围,它将被排除在外,通过该部门的任何传递也将被排除在外。谢谢,但我知道如何找到最新版本-我的问题是如何从Maven下载它并访问它的类和方法。。。除非@Taylor或其他人有更好的包装技术-见上文。谢谢