2009-04-28 37 views

回答

8

您需要創建自己的run.bat,並把它放在src /主/組裝/腳本,例如。然後你需要在src/main/assembly中創建一個assembly.xml文件。

以下是您可能要使用的assembly.xml文件的示例。它創建一個包含所有依賴jar和你的run.bat的tar.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> 

最後,在你的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安裝」,你會看到你的tar.gz的創建。

要釋放運行:

MVN發佈:準備
MVN發佈:執行

0

只是一個除了通過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> 

這asumes你已經把yourApp.bat文件的文件夾中:在yourApp.bat文件的

src/main/assembly/scripts 

內容應該看起來像這樣:

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

只要運行Maven命令,就可以享受。

+0

好主意,但我不能得到它的工作。我需要將過濾標誌添加到程序集xml中的文件集元素中。 – 2010-06-10 13:32:15

1

OK我用羅布麻的回答有點幫助

我用我自己的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> 

我不得不寫一個自己的run.bat - 所以它不是完全令人滿意,但會做。