二、elastic-job 專案打包
阿新 • • 發佈:2018-12-11
上一篇:elastic-job、elastic-job-lite-console使用案例
1、pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>elasticJobDemo</groupId> <artifactId>elasticJobDemo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-core</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-spring</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.2.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.cn.dl.main.ApplicationJob</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
2、進入pom.xml所在目錄,執行命令:mvn clean package
3、然後在classes目錄下找到elasticJobDemo-1.0-SNAPSHOT.jar,這裡麵包含了專案中所有依賴的jar,所以肯定不是幾十、幾百KB!
4、jar包生成之後,就可以使用命令 java -jar elasticJobDemo-1.0-SNAPSHOT.jar執行了
5、通過maven-assembly-plugin外掛打包,執行jar包有點問題,缺少springframework一些配置,比如(spring.handlers、spring.schemas 等)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>elasticJobDemo</groupId> <artifactId>elasticJobDemo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-core</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-spring</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.2.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.cn.dl.main.ApplicationJob</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>
使用maven-assembly-plugin打包命令:mvn clean assembly:assembly
在classes下找到elasticJobDemo-1.0-SNAPSHOT-jar-with-dependencies.jar
建議使用maven-shade-plugin外掛打包,不然線上有很多想不到的問題,之前遇到過,很DT。