[英]Export a Java project without main method (with external jars) to Jar in Eclipse
[英]Java: Include external jars while exporting java project (not as a JAR) in eclipse
现在,我已经在某个时间搜索了我的问题,但尚未找到答案。
我有一个Java eclipse项目,其中包含一些外部Jar(例如SWT jar)。 现在,这个项目是我已经从事一段时间的作业分配项目。 我需要交作业,教授将审查代码,他还将在本地执行代码。
因此,如何通过保持所有依赖关系不变来导出项目。 我当然不能提交JAR文件。 我尝试将项目导出为“文件系统”。 但是,它不保留外部依赖关系。
有没有办法做到这一点 ?
谢谢。
如果您不使用诸如Maven之类的管理依赖工具,那么您就别无选择:您必须提供编译项目所需的所有jar。
在这种情况下,如果您的老师有ANT,则使用ant构建将是一种组织依赖关系的干净方法。
否则,手动解决方案是将所有外部依赖项添加到项目的文件夹中。 例如: libs
。 在此libs
文件夹中,添加所有外部jar。 然后压缩/压缩项目。 教授只需要配置项目JDK,就可以了。
使用Maven,有一种方法可以下载POM中指定的必需依赖项。 仅当您需要的依赖项位于某些Maven存储库(例如中央存储库)或将其安装到本地存储库中时,此方法才起作用。
只需将一个配置maven-dependency-plugin的插件元素添加到您的POM中即可。 这将在编译阶段将所有依赖项复制到某个文件夹。 在这种情况下:target / lib。
<project>
...
<build>
...
<plugins>
...
<!-- For copying dependencies into target folder -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
...
</project>
如果要创建可运行的JAR,还可以配置maven-jar-plugin将复制到target / lib的依赖项添加到清单中的Class-Path元素,并使用指定的主类。
<!-- For including dependencies in target folder in JAR manfiest Class-Path -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
如果无法使用Maven,请下载JAR,然后将其放在项目的lib文件夹中。 如果您告诉IDE在哪里查看,IDE将能够接管这些对象。 或者只使用带有-cp
标志的javac
和java
命令来指定依赖项在哪里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.