Можно ли создать проект java только один раз, используя eclipse и поделиться?

Можно ли на самом деле создать проект maven, содержащий Java-код, который будет собран один раз, и двоичные файлы могут быть разделены?

Проблема: проект, который я пытаюсь построить, займет у меня около 3-4 часов и требует высокой пропускной способности интернета. Я пытаюсь проверить возможность повторного использования этого встроенного проекта среди нескольких других машин.

Ранее я работал с c++ проектами, включающими make файлы, и это было довольно просто. Я новичок в 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

Возможно ли построить проект maven, содержащий java-код, который будет создан один раз, и двоичные файлы могут быть разделены?

Да, что весь смысл Maven, вы строите проект один раз, создавая таким образом артефакт (ваш jar/war...), который хранится в вашем локальном репозитории maven.

Следующая команда создает проект и сохраняет его в локальном репо:

mvn clean install 

Однако, если вы это сделаете, у вас есть только артефакт в локальном репо.

Хорошей практикой является создание репозитория и хранение ваших артефактов там: https://maven.apache.org/repository-management.html

Использование следующей команды сохранит зависимость моментального снимка в репозитории:

mvn clean deploy

Затем вы можете повторно использовать компоненты через многократный компьютер, указав dependencies в новом файле проекта pom.xml.

Возможно, вы захотите ознакомиться с этим руководством:

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

Вам, очевидно, нужно будет настроить репозиторий и ваш проект maven, чтобы использовать такую ​​настройку.

Ответ 3

Прежде всего. Является ли ваш проект веб-приложением (войной) или корпоративным приложением (ухом) или просто отдельным Jar?

вы можете использовать тег упаковки в POM.xml для упаковки вашего приложения в JAR, WAR, EAR

Примеры:

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

Затем запустите mvn clean install

В проекте /src/target вы должны увидеть созданные банком, войной или ухом, которые можно использовать для развертывания на вашем компьютере или на любой другой машине.

ИЛИ

вы также можете найти это в папке .m2 после запуска установки.

Ответ 4

Если вы используете maven, mvn install установит ваш двоичный файл в вашу папку ${home}/. m2. Эти двоичные файлы будут доступны для всех других заданий maven, которые будут работать на одной машине.

Если вам нужно поделиться своим двоичным файлом между несколькими машинами, вы можете развернуть свои банки в репозиторий, например, как nexus или artifactory.

Ответ 5

Вы можете просто взять файл jar вашей целевой папки и скопировать его на другие компьютеры, иначе вы могли бы использовать какой-то общий репозиторий, например nexus order artifactory, чтобы поделиться своим встроенным двоичным кодом. Maven способен автоматически устанавливать артефакты в эти репозитории