繁体   English   中英

Java:在Eclipse中导出Java项目(而不作为JAR)时,请包含外部jar。

[英]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标志的javacjava命令来指定依赖项在哪里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM