【发布时间】:2014-09-23 11:38:53
【问题描述】:
到目前为止,我使用 Ant 制作了可运行的 jar,并且没有任何问题。
但是我现在尝试 mavenize 我的项目,我真的不知道如何使用这个工具来做可运行的 jar。
我已经阅读了大量的教程(也在这里,在 Stackoverflow 上)、帮助、建议和......什么都没有。就我而言,它们都不起作用,这可能意味着我不了解一些基础知识。
我有这么简单的项目:
这是一个应用程序,使用 mysql-connector-java-5.1.24-bin.jar(放置在“lib”目录中)连接到 MySQL 数据库。
我想将此 jar 包含到最终的 jar (DBPreformatter.jar) 中。
我在许多配置中使用了汇编和着色插件,但他们从未将此 jar 添加到 DBPreformatter.jar 中。
这是我的 pom.xml:
<modelVersion>4.0.0</modelVersion>
<groupId>com.icd4you</groupId>
<artifactId>DBPreformatter</artifactId>
<version>1.0.0</version>
<name>DBPreformatter</name>
<description>DB processing and cleaning tool</description>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>mysql-connector-java-5.1.24-bin</groupId>
<artifactId>mysql-connector-java-5.1.24-bin</artifactId>
<version>5.1.24</version>
<scope>system</scope>
<systemPath>${basedir}/lib/mysql-connector-java-5.1.24-bin.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<!-- WHAT SHOULD I USE HERE? -->
</plugins>
</build>
如何解决这个问题?
【问题讨论】:
-
将 JAR 包含在“lib”文件夹中并不是很像 maven。这个 JAR 是从哪里来的?如果您创作了它,您可以将它部署到本地存储库,然后正常引用它(即没有
systemPath)。如果它是第 3 方 JAR,请尝试在线搜索 - 它可能已经在标准存储库中。 -
连接器取自官方 mysql 站点。请记住,这是我尝试调整以适应 maven projest 的旧应用程序。无论如何,我会解决它。
-
当然,我明白了。我只是指出,当“mavenising”时,您需要做的其中一个步骤是尽可能尝试在标准存储库中寻找依赖项。 “Lib”文件夹在 Maven 项目中不受欢迎。
-
几乎重复的是How can I create an executable jar with dependencies using Maven?。但由于我们必须引导您解决
system范围问题,因此我不会将其作为重复项关闭。
标签: java maven jar runnable uberjar