Java 如何使用maven创建发布包?

Java 如何使用maven创建发布包?,java,maven-2,Java,Maven 2,我使用Maven2构建了一个桌面应用程序 我想不时发布一个版本(只需将所有项目和第三方JAR复制到一个目录中,并生成run.bat文件) 如何做到这一点?我会选择maven release插件,请参见: 例如,您需要自己创建run.bat并将其放置在src/main/assembly/scripts中。然后需要在src/main/assembly中创建一个assembly.xml文件 下面是您可能要使用的assembly.xml文件的示例。它创建一个tar.gz,其中包含所有依赖项jar和

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

我想不时发布一个版本(只需将所有项目和第三方JAR复制到一个目录中,并生成run.bat文件)


如何做到这一点?

我会选择maven release插件,请参见:


    • 例如,您需要自己创建run.bat并将其放置在src/main/assembly/scripts中。然后需要在src/main/assembly中创建一个assembly.xml文件

      下面是您可能要使用的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>
      
      
      1
      tar.gz
      假的
      /解放党
      目标
      /解放党
      *jar先生
      src/main/assembly/scripts
      /剧本
      *蝙蝠先生
      
      最后,在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>
      
      
      org.apache.maven.plugins
      maven汇编插件
      src/main/assembly/assembly.xml
      包裹
      附属的
      
      现在,当您运行“mvn安装”时,您应该会看到tar.gz被创建

      要释放运行,请执行以下操作:

      mvn发布:准备

      mvn发布:只需对

      您的.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文件的内容应如下所示:

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

      只要运行Maven命令就可以了。

      好的,我得到了dogbane的答案

      我使用了自己的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> 
      
      
      远程信息
      迪尔
      pl………:核心
      pl………:图形用户界面
      ../../release
      假的
      src/主/总成/
      ../../release
      *蝙蝠先生
      
      并在pom中添加以下内容

       <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <configuration>
                 <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                 </descriptors>
              </configuration>
           </plugin>
      
      
      maven汇编插件
      src/main/assembly/assembly.xml
      

      我必须自己写一个run.bat,所以它不是完全令人满意,但可以。

      好主意,但我无法让它工作。我需要将过滤标志添加到程序集xml中的fileset元素中。
       <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <configuration>
                 <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                 </descriptors>
              </configuration>
           </plugin>