appassembler-maven-plugin可以自动生成跨平台的启动脚本,省去了手工写脚本的麻烦,而且还可以生成jsw的后台运行程序。
appassembler的配置比较简单,在pom.xml的配置文件加入插件配置。
比如说不同的启动脚本,可以如下配置
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<configurationDirectory>conf</configurationDirectory>
<configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<assembleDirectory>${project.build.directory}/chj-search-client</assembleDirectory>
<extraJvmArguments>-Xms128m</extraJvmArguments>
<binFileExtensions>
<unix>.sh</unix>
</binFileExtensions>
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
<repositoryName>lib</repositoryName>
<programs>
<program>
<mainClass>com.chj360.search.client.App</mainClass>
</program>
</programs>
</configuration>
</plugin>
然后运行maven命令 :mvn package appassembler:assemble
就可以自动生成整个的依赖文件,配置文件和运行脚本了。
一些配置说明
configurationDirectory:生成配置文件路径
configurationSourceDirectory:配置文件原路径,默认为src/main/config
assembleDirectory:整体包目录
extraJvmArguments:jvm参数
binFileExtensions:生成脚本的后缀
platforms:生成哪几种平台
repositoryName:依赖包目录,默认repo
programs:这个必须参数,启动的主class
生成jsw也是一个简单的配置
eg:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<repositoryLayout>flat</repositoryLayout>
<repositoryName>lib</repositoryName>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<copyConfigurationDirectory>src/main/resources</copyConfigurationDirectory>
<target>${project.build.directory}</target>
<daemons>
<daemon>
<id>chj-search-client</id>
<mainClass>com.chj360.search.client.App</mainClass>
<commandLineArguments>
<commandLineArgument>start</commandLineArgument>
</commandLineArguments>
<platforms>
<platform>jsw</platform>
</platforms>
<generatorConfigurations>
<generatorConfiguration>
<generator>jsw</generator>
<includes>
<include>linux-x86-32</include>
<include>linux-x86-64</include>
<include>windows-x86-32</include>
<include>windows-x86-64</include>
</includes>
<configuration>
<property>
<name>configuration.directory.in.classpath.first</name>
<value>etc</value>
</property>
<property>
<name>set.default.REPO_DIR</name>
<value>lib</value>
</property>
<property>
<name>wrapper.logfile</name>
<value>../logs/wrapper.log</value>
</property>
<property>
<name>run.as.user.envvar</name>
<value>johndoe</value>
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
<jvmSettings>
<initialMemorySize>256M</initialMemorySize>
<maxMemorySize>512M</maxMemorySize>
<systemProperties>
<systemProperty>java.security.policy=conf/policy.all</systemProperty>
<systemProperty>com.sun.management.jmxremote</systemProperty>
<systemProperty>com.sun.management.jmxremote.port=8999</systemProperty>
<systemProperty>com.sun.management.jmxremote.authenticate=false</systemProperty>
<systemProperty>com.sun.management.jmxremote.ssl=false</systemProperty>
</systemProperties>
<extraArguments>
<extraArgument>-server</extraArgument>
</extraArguments>
</jvmSettings>
</daemon>
</daemons>
</configuration>
<executions>
<execution>
<id>generate-jsw-scripts</id>
<phase>package</phase>
<goals>
<goal>generate-daemons</goal>
</goals>
</execution>
</executions>
</plugin>
分享到:
相关推荐
exec-maven-plugin是Maven生态系统中的一个插件,它允许用户在Maven构建过程中执行外部命令或脚本。这使得Maven项目可以集成更多的自定义操作,比如运行特定的脚本、调用系统命令等。本文将详细介绍exec-maven-...
`maven-db-plugin` 插件有两个版本,即 `1.3` 和 `1.4`,这两个版本的 JAR 文件在压缩包中分别以 `maven-db-plugin-1.4.jar` 和 `maven-db-plugin-1.3.jar` 的形式存在。这些 JAR 文件包含了插件所需的全部类和资源...
**eclipse-maven3-plugin** 是一个专门为 Eclipse IDE 设计的插件,它允许开发者在 Eclipse 开发环境中无缝集成 Maven 构建工具。Maven 是一个项目管理和综合工具,广泛用于 Java 应用程序的构建、依赖管理和项目...
`yuicompressor-maven-plugin`是一款强大的Maven插件,主要用于优化前端资源,特别是JavaScript和CSS文件。这个插件是基于YUI Compressor,一个由Yahoo开发的开源工具,它能有效地压缩和混淆代码,从而减少文件大小...
每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...
通过在项目的pom.xml文件中配置插件参数,可以指定SQL脚本的位置和执行顺序,这样在构建项目时,Maven会自动运行这些脚本,确保数据库结构与代码同步。 其次,数据导入导出是另一个关键特性。在开发和测试过程中,...
M2E 插件使 Eclipse 用户能够在 IDE 内直接运行 Maven 命令,如构建、清理、测试等,无需离开 IDE 打开命令行。 2. **自动构建和更新**: 当 pom.xml 文件发生变化时,M2E 会自动检测并更新项目的构建配置,保持 ...
其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以定制依赖项等。本文将详细介绍 maven-assembly-plugin 的使用,包括其基本概念、配置方法和实践应用。 Maven 打包方式的...
【标题】:“jetty-console-maven-plugin-1.53.zip”是一个与Jetty服务器相关的Maven插件的版本包,版本号为1.53。Jetty是一款轻量级、开源的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。...
在`dropwizard-debpkg-maven-plugin-0.4.zip`的压缩文件中,尽管未提供具体的源代码或文档,但我们可以推断这个版本的插件应该包含了插件的Java源码、测试用例、Maven配置文件等资源,供开发者学习和使用。...
Spring Boot Maven Plugin是Maven的一个插件,它为Spring Boot应用程序提供了许多实用的功能,如内嵌服务器的启动、自动生成可执行的JAR或WAR文件等。通过集成此插件,开发者可以将Spring Boot应用的构建过程与...
githook-maven-plugin Maven插件来配置和安装本地git钩子 保护您的VCS 在提交更改之前先检查一下更改始终是一个好主意:运行单元测试,执行构建等。但是,这样的检查列表很容易被忽略,尤其是在大型项目中。 为了...
例如,`maven-compiler-plugin`插件用于编译Java源代码,`maven-surefire-plugin`则用于运行单元测试。开发者可以通过在`pom.xml`中配置插件参数来定制构建行为。 总之,Apache Maven 3.3.9是一个重要的工具,它...
Maven的插件系统允许扩展其功能,比如编译源代码、生成文档、执行测试、打包应用、部署到远程仓库等。例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin用于执行单元测试,maven-jar-plugin则...
本文将详细介绍如何通过编写脚本实现Maven项目的版本号自动升级以及打包上传的过程。 首先,我们要理解Maven的版本管理。在Maven的`pom.xml`文件中,定义了项目的版本号,如`<version>1.0.0-SNAPSHOT</version>`。...
- `bin`目录:包含可执行脚本,如`mvn`命令,用户可以直接运行这些脚本来执行Maven命令。 **6. 使用与配置** 安装Maven时,需要将`bin`目录添加到系统环境变量PATH中,然后就可以在命令行中使用`mvn`命令。`...
Maven还支持插件机制,允许扩展其功能,例如,生成文档、执行代码覆盖率分析等。 总的来说,Apache Maven 3.2.2作为一款广泛使用的构建工具,极大地简化了Java项目的构建和管理工作,对于Spring Boot这样的框架来说...
10. **maven-plugin-api** 和 **maven-plugin-registry**:提供API和接口供Maven插件使用,允许开发者编写自定义插件来扩展Maven的功能。 11. **maven-core** 和 **maven-model**:Maven的核心组件,负责解析POM,...
Maven插件,用于使用模式生成器从JPA实体生成模式或DDL脚本。 有关Gradle的信息,请参见。 当前支持 (参考实现)和 。 宣布之前... 阅读我的嘴唇; JPA DDL生成器不是银弹 有时(大多数情况下,通常是:P)JPA会...
Maven还支持插件机制,允许扩展其功能,例如,你可以使用maven-javadoc-plugin生成API文档,maven-surefire-plugin执行单元测试,或者maven-site-plugin生成项目网站。在pom.xml中定义插件及其配置,即可实现这些...