是否可以使用eclipse和共享构建一个java项目?

时间:2016-02-05 05:48:17

标签: java eclipse maven

是否可以实际构建一个maven项目,其中包含一次构建的java代码,并且可以共享二进制文件?

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

我之前使用过包含makefile的c ++项目,这非常简单。我是Java / eclipse的新手,需要帮助才能弄清楚这是否真的有可能。

PS: 我确实试图找到现有的解决方案;他们不是明星前锋,或者他们说不能这样做

5 个答案:

答案 0 :(得分:13)

构建一次并离线共享

在Maven中,您可以构建项目仅一次,并获得一个完全包含所有依赖项的JAR文件。这样,您可以将此JAR与其他机器脱机共享。

以下是制作它的步骤。

  
      
  1. 首先使用以下设置更新您的pom.xml
  2.   
 <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打包您的项目,如下所示
  2.   

在控制台中,

 mvn package assembly:single

在日食中,

enter image description here

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

enter image description here

  
      
  1. 您可以打开JAR以查看依赖项的打包方式如下所示。
  2.   

enter image description here

  
      
  1. 您可以离线共享此JAR到其他计算机,无需任何构建
  2.   

答案 1 :(得分:8)

  

是否可以实际构建一个包含一次构建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项目才能使用此类设置。

答案 2 :(得分:2)

首先要做的事情。您的项目是Web应用程序(战争)还是企业应用程序(耳朵)还是只是一个独立的Jar?

您可以使用POM.xml中的包装标签将您的应用程序打包到JAR,WAR,EAR

示例:

<packaging>war</packaging>
<packaging>ear</packaging>
<packaging>jar</packaging>

然后运行mvn clean install

在project / src / target中,您应该看到生成的jar,war或ear,您可以使用它来部署在您的计算机或任何其他计算机上。

OR

一旦运行安装,你也可以在.m2文件夹中找到它。

答案 3 :(得分:1)

如果您使用maven,mvn install会将您的二进制文件安装到$ {home} /.m2文件夹中。这些二进制文件可用于将在同一台机器上运行的所有其他maven作业。

如果您需要在多台计算机之间共享二进制文件,则可以将jar文件部署到存储库,例如nexus或ar​​tifactory。

答案 4 :(得分:1)

您只需获取目标文件夹的jar文件并将其复制到其他计算机,否则您可以使用某些共享存储库(如nexus或者artifactory)来共享您构建的二进制文件。 Maven能够自动将工件部署到这些存储库