`
lavafree
  • 浏览: 539714 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven 自动生成运行脚本插件appassembler-maven-plugin

 
阅读更多

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>
 

 

 

分享到:
评论

相关推荐

    Maven exec-maven-plugin:执行外部命令的实践指南

    exec-maven-plugin是Maven生态系统中的一个插件,它允许用户在Maven构建过程中执行外部命令或脚本。这使得Maven项目可以集成更多的自定义操作,比如运行特定的脚本、调用系统命令等。本文将详细介绍exec-maven-...

    com.googlecode 的 maven-db-plugin.jar 包

    `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-maven3-plugin** 是一个专门为 Eclipse IDE 设计的插件,它允许开发者在 Eclipse 开发环境中无缝集成 Maven 构建工具。Maven 是一个项目管理和综合工具,广泛用于 Java 应用程序的构建、依赖管理和项目...

    yuicompressor-maven-plugin

    `yuicompressor-maven-plugin`是一款强大的Maven插件,主要用于优化前端资源,特别是JavaScript和CSS文件。这个插件是基于YUI Compressor,一个由Yahoo开发的开源工具,它能有效地压缩和混淆代码,从而减少文件大小...

    maven资源 apache-maven-3.3.9-bin.zip

    每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...

    maven-db-plugin-1.4-renamed.zip

    通过在项目的pom.xml文件中配置插件参数,可以指定SQL脚本的位置和执行顺序,这样在构建项目时,Maven会自动运行这些脚本,确保数据库结构与代码同步。 其次,数据导入导出是另一个关键特性。在开发和测试过程中,...

    maven3.0.3及eclipse-maven3-plugin插件

    M2E 插件使 Eclipse 用户能够在 IDE 内直接运行 Maven 命令,如构建、清理、测试等,无需离开 IDE 打开命令行。 2. **自动构建和更新**: 当 pom.xml 文件发生变化时,M2E 会自动检测并更新项目的构建配置,保持 ...

    Maven3种打包方式中maven-assembly-plugin的使用详解

    其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以定制依赖项等。本文将详细介绍 maven-assembly-plugin 的使用,包括其基本概念、配置方法和实践应用。 Maven 打包方式的...

    jetty-console-maven-plugin-1.53.zip

    【标题】:“jetty-console-maven-plugin-1.53.zip”是一个与Jetty服务器相关的Maven插件的版本包,版本号为1.53。Jetty是一款轻量级、开源的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。...

    dropwizard-debpkg-maven-plugin-0.4.zip

    在`dropwizard-debpkg-maven-plugin-0.4.zip`的压缩文件中,尽管未提供具体的源代码或文档,但我们可以推断这个版本的插件应该包含了插件的Java源码、测试用例、Maven配置文件等资源,供开发者学习和使用。...

    spring-boot-maven-plugin-中文参考文档-2.7.5

    Spring Boot Maven Plugin是Maven的一个插件,它为Spring Boot应用程序提供了许多实用的功能,如内嵌服务器的启动、自动生成可执行的JAR或WAR文件等。通过集成此插件,开发者可以将Spring Boot应用的构建过程与...

    githook-maven-plugin:Maven插件安装本地git钩子

    githook-maven-plugin Maven插件来配置和安装本地git钩子 保护您的VCS 在提交更改之前先检查一下更改始终是一个好主意:运行单元测试,执行构建等。但是,这样的检查列表很容易被忽略,尤其是在大型项目中。 为了...

    apache-maven的插件包:apache-maven-3.3.9-bin.zip

    例如,`maven-compiler-plugin`插件用于编译Java源代码,`maven-surefire-plugin`则用于运行单元测试。开发者可以通过在`pom.xml`中配置插件参数来定制构建行为。 总之,Apache Maven 3.3.9是一个重要的工具,它...

    apache-maven-3.9.6-bin

    Maven的插件系统允许扩展其功能,比如编译源代码、生成文档、执行测试、打包应用、部署到远程仓库等。例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin用于执行单元测试,maven-jar-plugin则...

    Maven自动升级版本号并打包上传的脚本

    本文将详细介绍如何通过编写脚本实现Maven项目的版本号自动升级以及打包上传的过程。 首先,我们要理解Maven的版本管理。在Maven的`pom.xml`文件中,定义了项目的版本号,如`&lt;version&gt;1.0.0-SNAPSHOT&lt;/version&gt;`。...

    apache-maven-3.3.9

    - `bin`目录:包含可执行脚本,如`mvn`命令,用户可以直接运行这些脚本来执行Maven命令。 **6. 使用与配置** 安装Maven时,需要将`bin`目录添加到系统环境变量PATH中,然后就可以在命令行中使用`mvn`命令。`...

    apache-maven-3.2.2.zip

    Maven还支持插件机制,允许扩展其功能,例如,生成文档、执行代码覆盖率分析等。 总的来说,Apache Maven 3.2.2作为一款广泛使用的构建工具,极大地简化了Java项目的构建和管理工作,对于Spring Boot这样的框架来说...

    apache-maven-3.6.0.zip

    10. **maven-plugin-api** 和 **maven-plugin-registry**:提供API和接口供Maven插件使用,允许开发者编写自定义插件来扩展Maven的功能。 11. **maven-core** 和 **maven-model**:Maven的核心组件,负责解析POM,...

    jpa-schema-maven-plugin:Maven插件,用于从JPA实体生成数据库架构或DDL脚本

    Maven插件,用于使用模式生成器从JPA实体生成模式或DDL脚本。 有关Gradle的信息,请参见。 当前支持 (参考实现)和 。 宣布之前... 阅读我的嘴唇; JPA DDL生成器不是银弹 有时(大多数情况下,通常是:P)JPA会...

    apache-maven-3.8.4-bin.zip maven下载鬼慢

    Maven还支持插件机制,允许扩展其功能,例如,你可以使用maven-javadoc-plugin生成API文档,maven-surefire-plugin执行单元测试,或者maven-site-plugin生成项目网站。在pom.xml中定义插件及其配置,即可实现这些...

Global site tag (gtag.js) - Google Analytics