Java 如何使用maven创建发布包?
我使用Maven2构建了一个桌面应用程序 我想不时发布一个版本(只需将所有项目和第三方JAR复制到一个目录中,并生成run.bat文件)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和
如何做到这一点?我会选择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>