Как создать релиз-пакет с Maven? - PullRequest
4 голосов
/ 28 апреля 2009

Я создаю настольное приложение, используя Maven2.

Я хотел бы время от времени выпускать релизы (просто скопируйте все файлы проекта и сторонних разработчиков в один каталог и создайте файл run.bat).

Как это сделать?

Ответы [ 4 ]

8 голосов
/ 28 апреля 2009

Вам нужно создать run.bat самостоятельно и поместить его, например, в src / main / assembly / scripts. Затем вам нужно создать файл assembly.xml в src / main / assembly.

Вот пример файла assembly.xml, который вы можете использовать. Он создает tar.gz со всеми вашими jar-файлами зависимостей и вашим run.bat.

<assembly>
    <id>1.0</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>target</directory>
            <outputDirectory>/lib</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>src/main/assembly/scripts</directory>
            <outputDirectory>/scripts</outputDirectory>
            <includes>
                <include>*.bat</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

Наконец, в вашем файле pom.xml добавьте плагин сборки:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <descriptors>
                <descriptor>src/main/assembly/assembly.xml</descriptor>
            </descriptors>
        </configuration>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>attached</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

Теперь, когда вы запустите "mvn install", вы увидите созданный tar.gz.

Чтобы выпустить прогон:

Mvn выпуск: подготовить
Mvn Release: выполнить

1 голос
/ 28 апреля 2009

ОК, я получил это с небольшой помощью ответа собачьей страхи

Я использовал свой собственный ассемблерный файл src / main /assemlby.assembly.xml

<assembly>
   <id>teleinf</id>
   <formats>
      <format>dir</format>
   </formats>
   <moduleSets>
      <moduleSet>
         <includes>
            <include>pl..........:core</include>
            <include>pl..........:gui</include>
         </includes>
         <binaries>
            <outputDirectory>../../release</outputDirectory>
            <unpack>false</unpack>
         </binaries>
      </moduleSet>
   </moduleSets>
   <fileSets>
      <fileSet>
         <directory>src/main/assembly/</directory>
         <outputDirectory>../../release</outputDirectory>
         <includes>
            <include>*.bat</include>
         </includes>
      </fileSet>
   </fileSets>
</assembly> 

и добавил следующее к пом

 <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
           <descriptors>
              <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
        </configuration>
     </plugin>

Я должен был написать run.bat сам - так что это не совсем удовлетворительно, но подойдет.

0 голосов
/ 28 апреля 2009

Просто дополнение к ответу Dogbane

В вашем .bat-файле будет запущен упакованный jar-файл с именем файла, отражающим текущую версию приложения, например,

java -Xms256m -Xmx350m -jar bin\yourApp-1.10.1-SNAPSHOT.jar

В каждом выпуске этот файл должен обновляться с использованием новой версии приложения. Это также может быть автоматизировано.

В вашем файле pom.xml добавьте этот раздел:

<build>
  <resources>
    <resource>
      <filtering>true</filtering>
      <directory>${project.build.sourceDirectory}/../assembly/scripts</directory>
      <includes>
        <include>yourApp.bat</include>
      </includes>
    </resource>
    ...
  </resources>
  ...
</build>

Это означает, что вы поместили файл yourApp.bat в папку:

src/main/assembly/scripts

Содержимое файла yourApp.bat должно выглядеть следующим образом:

java -Xms256m -Xmx350m -jar bin\${project.build.finalName}.jar

Просто запустите команды Maven и наслаждайтесь.

0 голосов
/ 28 апреля 2009

я бы пошел с плагином релиза maven, см .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...