代码之家  ›  专栏  ›  技术社区  ›  Łukasz Bownik

如何用maven创建发布包?

  •  4
  • Łukasz Bownik  · 技术社区  · 16 年前

    我使用Maven2构建了一个桌面应用程序。

    怎么做?

    4 回复  |  直到 9 年前
        1
  •  8
  •   dogbane    16 年前

    你需要创造运行.bat例如,将它放在src/main/assembly/scripts中。然后你需要创建一个程序集.xmlsrc/main/assembly中的文件。

    下面是一个程序集.xml可能要使用的文件。它创造了一个焦油.gz你所有的依赖罐子和批处理文件.

    <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>
    

        <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”时,您应该可以看到焦油.gz创建。

    要释放运行:

    mvn公司发布:准备
    mvn公司释放:执行

        2
  •  1
  •   dogbane    12 年前

    好吧,我得到了一个小的帮助,多班恩的答案

    我使用了自己的assemlby文件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> 
    

    并在pom中添加了以下内容

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

    我不得不写一本书运行.bat我自己-所以这不是完全令人满意,但会做的。

        4
  •  0
  •   Community CDub    8 年前

    只是对 dogbane

    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>
    

    这意味着你已经把你的应用程序.bat文件夹中的文件:

    src/main/assembly/scripts
    

    项目内容你的应用程序.bat文件应如下所示:

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