是否可以只使用 eclipse 和 share 构建一次 Java 项目?一次构建,即可离线共享

2022-09-02 20:17:43

是否有可能实际构建一个包含java代码的maven项目,只需构建一次即可共享二进制文件?

问题:我试图构建的项目大约需要3-4个小时,并且需要高互联网带宽。我正在尝试检查在其他几台机器中重新使用此构建项目的可能性。

我之前处理过涉及makefiles的c ++项目,这非常简单。我是Java / eclipse的新手,需要帮助来确定这是否真的是可能的。

PS:我确实尝试过找到现有的解决方案;他们不是直截了当的,或者他们说这不能做到。


答案 1

一次构建,即可离线共享

在 Maven 中,您只能生成一次项目,并获取一个包含所有依赖项的完全打包的 JAR 文件。这样,您就可以离线将此JAR共享给其他计算机。

以下是实现它的步骤。

  1. 首先使用以下设置更新您的 pom.xml
 <build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.thanga.MyTest[REPLACE WITH YOUR MAIN CLASS]</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

  1. 按如下所示的目标打包项目package assembly:single

在控制台中,

 mvn package assembly:single

在日食中,

enter image description here


  1. 运行此命令,您可以获取两个 JAR 文件。其中一个加载了完整的依赖项。MyFullPack-0.0.1-SNAPSHOT-jar-with-dependencies.jar

enter image description here


  1. 您可以打开 JAR 以查看依赖项是否已打包,如下所示。

enter image description here


  1. 您可以离线将此 JAR 共享给其他计算机,而无需再进行任何构建


答案 2

是否有可能实际构建一个包含java代码的maven项目,只需构建一次即可共享二进制文件?

是的,这就是Maven的全部意义,你只需构建一次项目,从而生成一个存储在本地maven存储库中的工件(你的jar/war...)。

以下命令生成项目并将其保存在本地存储库中:

mvn clean install 

但是,如果这样做,则只有本地存储库上的项目。

一个好的做法是创建一个存储库并将你的工件存储在那里:https://maven.apache.org/repository-management.html

使用以下命令会将快照依赖关系存储在存储库上:

mvn clean deploy

然后,您可以通过在新项目的 pom.xml 文件中指定 来通过多台计算机重用组件。dependencies

您可能想看看本指南:

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

您显然需要配置存储库和 maven 项目才能使用此类设置。


推荐