先说解决方案
方案一:
启动类排除activiti扫描报错的部分
@SpringBootApplication( exclude = SecurityAutoConfiguration.class)
public class ScheduleApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ScheduleApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ScheduleApplication.class);
}
}
方案二:
这是已经适配spring boot 2.1.2 的jar包,根据readme调整
链接:https://pan.baidu.com/s/1-O2SSWL3ibIBOjBkwgVeIg
提取码:b7ee
再说遇到问题,项目使用的是spring boot 2.1.2,引入activiti6.0.0后
org.activiti
activiti-spring-boot-starter-basic
6.0.0
报错
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'documentationPluginsBootstrapper' defined in URL [jar:file:/D:/apache-maven-3.3.9/repo/m2/io/springfox/springfox-spring-web/2.7.0/springfox-spring-web-2.7.0.jar!/springfox/documentation/spring/web/plugins/DocumentationPluginsBootstrapper.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined in URL [jar:file:/D:/apache-maven-3.3.9/repo/m2/io/springfox/springfox-spring-web/2.7.0/springfox-spring-web-2.7.0.jar!/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1308) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1154) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at com.gbiac.sche.app.ScheduleApplication.main(ScheduleApplication.java:12) [classes/:na]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined in URL [jar:file:/D:/apache-maven-3.3.9/repo/m2/io/springfox/springfox-spring-web/2.7.0/springfox-spring-web-2.7.0.jar!/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1308) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1154) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1460) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1424) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1315) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1202) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
... 19 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1745) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1460) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1424) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1315) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1202) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
... 36 common frames omitted
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724) ~[na:1.8.0_161]
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531) ~[na:1.8.0_161]
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355) ~[na:1.8.0_161]
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286) ~[na:1.8.0_161]
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120) ~[na:1.8.0_161]
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72) ~[na:1.8.0_161]
at java.lang.Class.createAnnotationData(Class.java:3521) ~[na:1.8.0_161]
at java.lang.Class.annotationData(Class.java:3510) ~[na:1.8.0_161]
at java.lang.Class.createAnnotationData(Class.java:3526) ~[na:1.8.0_161]
at java.lang.Class.annotationData(Class.java:3510) ~[na:1.8.0_161]
at java.lang.Class.getAnnotation(Class.java:3415) ~[na:1.8.0_161]
at java.lang.reflect.AnnotatedElement.isAnnotationPresent(AnnotatedElement.java:258) ~[na:1.8.0_161]
at java.lang.Class.isAnnotationPresent(Class.java:3425) ~[na:1.8.0_161]
at org.springframework.core.annotation.AnnotatedElementUtils.hasAnnotation(AnnotatedElementUtils.java:599) ~[spring-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.isHandler(RequestMappingHandlerMapping.java:205) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.processCandidateBean(AbstractHandlerMethodMapping.java:251) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:211) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:199) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:164) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1741) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
... 50 common frames omitted
activiti6.0.0在spring boot2之前发布的,所以有些api不兼容。所以在这里我们对activit源码进行修改,并重新打成jar包。
从GitHub上下载activiti6.0.0的源码
1、先找到spring-boot的依赖路径,
可以看到它原来是依赖spring-boot 1.2.6.RELEASE,在这里我们对版本进行修改,改成我们需要的版本
2、rebuild项目,可以发现报错冲突部分
①org.activiti.spring.boot.actuate.endpoint.ProcessEngineEndpoint
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.spring.boot.actuate.endpoint;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.activiti.engine.impl.persistence.deploy.DefaultDeploymentCache;
import org.activiti.engine.impl.persistence.deploy.DeploymentCache;
import org.activiti.engine.impl.persistence.deploy.ProcessDefinitionCacheEntry;
//import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
import org.activiti.engine.repository.ProcessDefinition;
//import org.springframework.boot.actuate.endpoint.AbstractEndpoint;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
//import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.*;
/**
* Registers a Boot Actuator endpoint that provides information on the
* running process instance and renders BPMN diagrams of the deployed processes.
*
* @author Josh Long
*/
//@ConfigurationProperties(prefix = "endpoints.activiti")
@Endpoint(id = "activiti")
public class ProcessEngineEndpoint {
private final ProcessEngine processEngine;
public ProcessEngineEndpoint(ProcessEngine processEngine) {
// super("activiti");
this.processEngine = processEngine;
}
// @Override
// public Map invoke() {
@ReadOperation
public Map activiti(){
Map metrics = new HashMap();
// Process definitions
metrics.put("processDefinitionCount", processEngine.getRepositoryService().createProcessDefinitionQuery().count());
// List of all process definitions
List processDefinitions = processEngine.getRepositoryService().createProcessDefinitionQuery().orderByProcessDefinitionKey().asc().list();
List processDefinitionKeys = new ArrayList();
for (ProcessDefinition processDefinition : processDefinitions) {
processDefinitionKeys.add(processDefinition.getKey() + " (v" + processDefinition.getVersion() + ")");
}
metrics.put("deployedProcessDefinitions", processDefinitionKeys);
// Process instances
Map processInstanceCountMap = new HashMap();
metrics.put("runningProcessInstanceCount", processInstanceCountMap);
for (ProcessDefinition processDefinition : processDefinitions) {
processInstanceCountMap.put(processDefinition.getKey() + " (v" + processDefinition.getVersion() + ")",
processEngine.getRuntimeService().createProcessInstanceQuery().processDefinitionId(processDefinition.getId()).count());
}
Map completedProcessInstanceCountMap = new HashMap();
metrics.put("completedProcessInstanceCount", completedProcessInstanceCountMap);
for (ProcessDefinition processDefinition : processDefinitions) {
completedProcessInstanceCountMap.put(processDefinition.getKey() + " (v" + processDefinition.getVersion() + ")",
processEngine.getHistoryService().createHistoricProcessInstanceQuery().finished().processDefinitionId(processDefinition.getId()).count());
}
// Open tasks
metrics.put("openTaskCount", processEngine.getTaskService().createTaskQuery().count());
metrics.put("completedTaskCount", processEngine.getHistoryService().createHistoricTaskInstanceQuery().finished().count());
// Tasks completed today
metrics.put("completedTaskCountToday", processEngine.getHistoryService().createHistoricTaskInstanceQuery().finished().taskCompletedAfter(
new Date(System.currentTimeMillis() - secondsForDays(1))).count());
// Process steps
metrics.put("completedActivities", processEngine.getHistoryService().createHistoricActivityInstanceQuery().finished().count());
// Process definition cache
DeploymentCache deploymentCache = ((ProcessEngineConfigurationImpl) processEngine.getProcessEngineConfiguration()).getProcessDefinitionCache();
if (deploymentCache instanceof DefaultDeploymentCache) {
metrics.put("cachedProcessDefinitionCount", ((DefaultDeploymentCache) deploymentCache).size());
}
return metrics;
}
private long secondsForDays(int days) {
int hour = 60 * 60 * 1000;
int day = 24 * hour;
return days * day;
}
}
②org.activiti.spring.boot.actuate.endpoint.ProcessEngineMvcEndpoint
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.spring.boot.actuate.endpoint;
import java.io.InputStream;
import org.activiti.bpmn.BpmnAutoLayout;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.image.ProcessDiagramGenerator;
import org.activiti.image.impl.DefaultProcessDiagramGenerator;
//import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Renders a valid running BPMN process definition as a BPMN diagram.
*
* This is duplicative of the functionality in the full REST API implementation.
*
* @author Joram Barrez
* @author Josh Long
*/
public class ProcessEngineMvcEndpoint {
private final RepositoryService repositoryService;
private final ProcessEngineEndpoint processEngineEndpoint;
public ProcessEngineMvcEndpoint(ProcessEngineEndpoint processEngineEndpoint, RepositoryService repositoryService) {
// super(processEngineEndpoint);
this.processEngineEndpoint = processEngineEndpoint;
this.repositoryService = repositoryService;
}
/**
* Look up the process definition by key. For example,
* this is process-diagram for
* a process definition named {@code fulfillmentProcess}.
*/
@RequestMapping(value = "/processes/{processDefinitionKey:.*}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public ResponseEntity processDefinitionDiagram(@PathVariable String processDefinitionKey) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey(processDefinitionKey)
.latestVersion()
.singleResult();
if (processDefinition == null) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
}
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
if (bpmnModel.getLocationMap().size() == 0) {
BpmnAutoLayout autoLayout = new BpmnAutoLayout(bpmnModel);
autoLayout.execute();
}
InputStream is = processDiagramGenerator.generateJpgDiagram(bpmnModel);
return ResponseEntity.ok(new InputStreamResource(is));
}
}
③org.activiti.spring.boot.EndpointAutoConfiguration
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.spring.boot;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RepositoryService;
import org.activiti.spring.boot.actuate.endpoint.ProcessEngineEndpoint;
import org.activiti.spring.boot.actuate.endpoint.ProcessEngineMvcEndpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* The idea behind this module is that Spring Security could
* talk to the {@link org.activiti.engine.IdentityService}
* as required.
*
* @author Josh Long
*/
@Configuration
//@ConditionalOnClass (name = "org.springframework.boot.actuate.endpoint.AbstractEndpoint")
public class EndpointAutoConfiguration {
@Bean
public ProcessEngineEndpoint processEngineEndpoint(ProcessEngine engine) {
return new ProcessEngineEndpoint(engine);
}
@Bean
public ProcessEngineMvcEndpoint processEngineMvcEndpoint(
ProcessEngineEndpoint engineEndpoint, RepositoryService repositoryService) {
return new ProcessEngineMvcEndpoint(engineEndpoint, repositoryService);
}
}
④org.activiti.spring.boot.DataSourceProcessEngineAutoConfiguration
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.spring.boot;
import java.io.IOException;
import javax.sql.DataSource;
import org.activiti.spring.SpringAsyncExecutor;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
/**
* @author Joram Barrez
* @author Josh Long
*/
@Configuration
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class DataSourceProcessEngineAutoConfiguration {
@Configuration
// @ConditionalOnMissingClass(name= "javax.persistence.EntityManagerFactory")
@ConditionalOnMissingClass(value= "javax.persistence.EntityManagerFactory")
@EnableConfigurationProperties(ActivitiProperties.class)
public static class DataSourceProcessEngineConfiguration extends AbstractProcessEngineAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
@ConditionalOnMissingBean
public SpringProcessEngineConfiguration springProcessEngineConfiguration(
DataSource dataSource,
PlatformTransactionManager transactionManager,
SpringAsyncExecutor springAsyncExecutor) throws IOException {
return this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
}
}
}
⑤org.activiti.spring.boot.SecurityAutoConfiguration
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.spring.boot;
import org.activiti.engine.IdentityService;
import org.activiti.rest.security.BasicAuthenticationProvider;
import org.activiti.spring.security.IdentityServiceUserDetailsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
/**
* Installs a Spring Security adapter for the Activiti
* {@link org.activiti.engine.IdentityService}.
*
* @author Josh Long
*/
@Configuration
//@AutoConfigureBefore(org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class)
@AutoConfigureBefore(org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class)
public class SecurityAutoConfiguration {
@Configuration
@ConditionalOnClass( UserDetailsService.class)
public static class UserDetailsServiceConfiguration
extends GlobalAuthenticationConfigurerAdapter {
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService( userDetailsService());
}
@Bean
public UserDetailsService userDetailsService() {
return new IdentityServiceUserDetailsService(this.identityService);
}
@Autowired
private IdentityService identityService;
}
@Configuration
@ConditionalOnClass(name = {"org.activiti.rest.service.api.RestUrls", "org.springframework.web.servlet.DispatcherServlet"})
@EnableWebSecurity
public static class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Bean
public AuthenticationProvider authenticationProvider() {
return new BasicAuthenticationProvider();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authenticationProvider(authenticationProvider())
.csrf().disable()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
}
主要是spring boot 1 和 2的一些配置方式和包结构不同
3.指定activiti-root下的pom
指定他的版本为6.0.0,而不是${project.version}
4.0.0
Activiti
BPM and workflow engine
org.activiti
activiti-root
org.sonatype.oss
oss-parent
7
pom
6.0.0
UTF-8
4.2.5.RELEASE
4.0.4.RELEASE
3.5.0
3.1.6
1.7
-Duser.language=en
version="[$(version;==;${activiti.osgi.version.clean}),$(version;=+;${activiti.osgi.version.clean}))"
version="[$(version;===;${activiti.osgi.version.clean}),$(version;==+;${activiti.osgi.version.clean}))"
[$(version;==;$(@)),$(version;+;$(@)))
org.activiti.*;${activiti.osgi.import.activiti.version},
${activiti.osgi.import.before.defaults},
${activiti.osgi.import.defaults},
${activiti.osgi.import.additional},
*
false
${activiti.osgi.export.pkg};${activiti.osgi.version};-noimport:=true
${activiti.artifact}*,
${activiti.osgi.export.additional}
version=6.0.0
-split-package:=first
${activiti.osgi.import.pkg}
${activiti.artifact}
false
Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL
{maven-resources}
cglib
cglib
2.2
com.h2database
h2
1.3.176
commons-dbcp
commons-dbcp
1.4
org.slf4j
slf4j-api
1.7.6
org.slf4j
jcl-over-slf4j
1.7.6
org.slf4j
slf4j-log4j12
1.7.6
commons-logging
commons-logging
1.2
org.apache.commons
commons-lang3
3.3.2
commons-io
commons-io
2.0.1
commons-fileupload
commons-fileupload
1.2.2
org.apache.httpcomponents
httpclient
4.3.5
com.oracle.jdbc
ojdbc7
12.1.0.1
test
com.sun.xml.bind
jaxb-impl
2.2.11
com.sun.xml.bind
jaxb-xjc
2.2.11
javax.servlet
servlet-api
2.5
javax.mail
mail
1.4.1
javax.persistence
persistence-api
1.0
provided
javax.enterprise.concurrent
javax.enterprise.concurrent-api
1.0
provided
javax.xml.bind
jaxb-api
2.2.11
de.odysseus.juel
juel-api
2.2.7
de.odysseus.juel
juel-impl
2.2.7
de.odysseus.juel
juel-spi
2.2.7
junit
junit
4.11
test
org.assertj
assertj-core
2.6.0
test
mysql
mysql-connector-java
5.1.27
test
org.activiti
activiti-secure-tasks
6.0.0
com.ibm.db2.jcc
db2jcc4
10.1
test
org.activiti
activiti-engine
6.0.0
org.activiti
activiti-spring
6.0.0
org.activiti
activiti-bpmn-model
6.0.0
org.activiti
activiti-bpmn-converter
6.0.0
org.activiti
activiti-json-converter
6.0.0
org.activiti
activiti-explorer
6.0.0
org.activiti
activiti-simple-workflow
6.0.0
org.activiti
activiti-common-rest
6.0.0
org.activiti
activiti-rest
6.0.0
org.activiti
activiti-dmn-api
6.0.0
org.activiti
activiti-dmn-engine
6.0.0
org.activiti
activiti-dmn-model
6.0.0
org.activiti
activiti-dmn-xml-converter
6.0.0
org.activiti
activiti-dmn-json-converter
6.0.0
org.activiti
activiti-dmn-rest
6.0.0
org.activiti
activiti-dmn-engine-configurator
6.0.0
org.activiti
activiti-form-model
6.0.0
org.activiti
activiti-form-api
6.0.0
org.activiti
activiti-form-json-converter
6.0.0
org.activiti
activiti-form-engine
6.0.0
org.activiti
activiti-form-engine-configurator
6.0.0
org.activiti
activiti-camel
6.0.0
org.activiti
activiti-mule
6.0.0
org.activiti
activiti-crystalball
6.0.0
org.activiti
activiti-webapp-rest2
war
6.0.0
org.activiti
activiti-cxf
6.0.0
org.activiti
activiti-bpmn-layout
6.0.0
org.activiti
activiti-process-validation
6.0.0
org.activiti
activiti-image-generator
6.0.0
org.activiti
activiti5-engine
6.0.0
org.activiti
activiti5-spring
6.0.0
org.activiti
activiti5-compatibility
6.0.0
org.activiti
activiti5-spring-compatibility
6.0.0
org.activiti
activiti-jmx
6.0.0
org.apache.commons
commons-email
1.4
org.apache.cxf
cxf-rt-frontend-jaxws
${cxf.version}
org.apache.cxf
cxf-rt-transports-http
${cxf.version}
org.apache.cxf
cxf-rt-transports-http-jetty
${cxf.version}
org.apache.cxf
cxf-rt-bindings-soap
${cxf.version}
org.apache.geronimo.specs
geronimo-jta_1.1_spec
1.1.1
org.opensaml
opensaml
1.1
org.apache.openjpa
openjpa
1.2.2
test
commons-logging
commons-logging
org.codehaus.groovy
groovy-all
2.4.5
org.drools
drools-core
5.5.0.Final
org.drools
drools-compiler
5.5.0.Final
org.json
json
20070829
org.mule.modules
mule-module-cxf
${mule.version}
org.mule.tests
mule-tests-functional
${mule.version}
org.mybatis
mybatis
3.4.2
org.mockito
mockito-core
1.8.2
test
org.osgi
org.osgi.core
6.0.0
provided
org.osgi
org.osgi.compendium
5.0.0
provided
org.apache.felix
org.apache.felix.fileinstall
3.5.4
true
org.slf4j
slf4j-jdk14
1.7.6
org.springframework
spring-beans
${spring.framework.version}
org.springframework
spring-core
${spring.framework.version}
commons-logging
commons-logging
org.springframework
spring-context
${spring.framework.version}
org.springframework
spring-aop
${spring.framework.version}
org.springframework
spring-jdbc
${spring.framework.version}
org.springframework
spring-orm
${spring.framework.version}
org.springframework
spring-tx
${spring.framework.version}
org.springframework
spring-context-support
${spring.framework.version}
org.springframework
spring-web
${spring.framework.version}
org.springframework
spring-webmvc
${spring.framework.version}
org.springframework
spring-test
${spring.framework.version}
org.springframework.security
spring-security-core
${spring.security.version}
org.springframework.security
spring-security-config
${spring.security.version}
org.springframework.security
spring-security-crypto
${spring.security.version}
org.springframework.security
spring-security-web
${spring.security.version}
org.subethamail
subethasmtp-wiser
1.2
test
commons-logging
commons-logging
org.hsqldb
hsqldb
2.3.2
test
org.postgresql
postgresql
9.4-1201-jdbc4
test
wsdl4j
wsdl4j
1.6.2
xerces
xercesImpl
2.10.0
joda-time
joda-time
2.6
com.fasterxml.jackson.core
jackson-core
2.7.5
com.fasterxml.jackson.core
jackson-annotations
2.7.5
com.fasterxml.jackson.core
jackson-databind
2.7.5
org.apache.xmlgraphics
batik-parser
${batik.version}
org.apache.xmlgraphics
batik-transcoder
${batik.version}
commons-logging
commons-logging
org.apache.xmlgraphics
batik-bridge
${batik.version}
org.apache.xmlgraphics
batik-codec
${batik.version}
org.apache.xmlgraphics
batik-css
${batik.version}
org.apache.xmlgraphics
batik-svg-dom
${batik.version}
org.apache.xmlgraphics
batik-svggen
${batik.version}
org.imgscalr
imgscalr-lib
4.2
math.geom2d
javaGeom
0.11.1
org.apache.camel
camel-spring
2.17.1
org.safehaus.jug
jug
lgpl
2.0.0
com.fasterxml.uuid
java-uuid-generator
3.1.3
net.sourceforge.jtds
jtds
1.3.0
com.googlecode.catch-exception
catch-exception
1.2.0
test
modules/activiti-bpmn-model
modules/activiti-process-validation
modules/activiti-bpmn-layout
modules/activiti-image-generator
modules/activiti-bpmn-converter
modules/activiti-form-model
modules/activiti-form-api
modules/activiti-dmn-model
modules/activiti-dmn-api
modules/activiti-engine
maven-compiler-plugin
2.3.2
1.7
true
true
true
maven-surefire-plugin
2.7.1
false
false
true
**/*TestCase.java
alphabetical
org.apache.felix
maven-bundle-plugin
2.1.0
true
${activiti.osgi.exclude.dependencies}
${project.name}
${activiti.osgi.symbolic.name}
${activiti.osgi.activator}
${activiti.osgi.export}
org.activiti.osgi;resolution:=optional,
${activiti.osgi.import}
${activiti.osgi.dynamic}
${activiti.osgi.private.pkg}
Activiti
6.0.0
${activiti.osgi.include.resource}
<_versionpolicy>${activiti.osgi.import.default.version}
<_removeheaders>${activiti.osgi.remove.headers}
<_failok>${activiti.osgi.failok}
${activiti.osgi.export.service}
${activiti.osgi.import.service}
${activiti.osgi.embed}
6.0.0
org.apache.maven.plugins
maven-jar-plugin
2.3.2
org.eclipse.m2e
lifecycle-mapping
1.0.0
org.apache.felix
maven-bundle-plugin
[2.1.0,)
manifest
org.apache.maven.plugins
maven-release-plugin
2.4.2
forked-path
false
${arguments} -Psonatype-oss-release
nofail
true
deploy
modules/activiti-bpmn-model
modules/activiti-process-validation
modules/activiti-image-generator
modules/activiti-bpmn-converter
modules/activiti-engine
modules/activiti-secure-tasks
modules/activiti-secure-javascript
modules/activiti-secure-service-tasks
modules/activiti-bpmn-layout
modules/activiti-json-converter
modules/activiti-dmn-model
modules/activiti-dmn-json-converter
modules/activiti-dmn-xml-converter
modules/activiti-dmn-engine
modules/activiti-dmn-engine-configurator
modules/activiti-dmn-rest
modules/activiti-form-model
modules/activiti-form-json-converter
modules/activiti-form-engine
modules/activiti-form-engine-configurator
modules/activiti-common-rest
modules/activiti-rest
modules/activiti-webapp-rest2
modules/activiti-spring
modules/activiti5-engine
modules/activiti5-compatibility
modules/activiti5-spring
modules/activiti5-spring-compatibility
modules/activiti-spring-boot
modules/activiti-cxf
modules/activiti-mule
modules/activiti-camel
modules/activiti-ui
modules/activiti-cdi
modules/activiti-osgi
modules/activiti-ldap
modules/activiti-jmx
modules/activiti-jms-spring-executor
modules/activiti-admin
tooling/archetypes/activiti-archetype-unittest
org.apache.maven.plugins
maven-source-plugin
jar
maven-javadoc-plugin
-Xdoclint:none
attach-javadocs
jar
org.apache.maven.plugins
maven-gpg-plugin
sign-artifacts
verify
sign
check
modules/activiti-bpmn-model
modules/activiti-process-validation
modules/activiti-image-generator
modules/activiti-bpmn-converter
modules/activiti-bpmn-layout
modules/activiti-json-converter
modules/activiti-spring
modules/activiti-spring-boot
modules/activiti-common-rest
modules/activiti-rest
modules/activiti-webapp-rest2
modules/activiti-cxf
modules/activiti-secure-tasks
modules/activiti-secure-javascript
modules/activiti-secure-service-tasks
modules/activiti-form-json-converter
modules/activiti-form-engine
modules/activiti-form-engine-configurator
modules/activiti-dmn-engine
modules/activiti-dmn-model
modules/activiti-dmn-json-converter
modules/activiti-dmn-xml-converter
modules/activiti-dmn-rest
modules/activiti-jms-spring-executor
checkJdk6
modules/activiti-bpmn-model
modules/activiti-process-validation
modules/activiti-image-generator
modules/activiti-bpmn-converter
modules/activiti-bpmn-layout
modules/activiti-json-converter
modules/activiti-spring
modules/activiti-common-rest
modules/activiti-rest
modules/activiti-webapp-rest2
modules/activiti-cxf
modules/activiti-secure-tasks
modules/activiti-secure-javascript
modules/activiti-secure-service-tasks
checkmule
modules/activiti-cxf
modules/activiti-mule
checkspring
modules/activiti-spring
checkcdi
modules/activiti-cdi
checkosgi
modules/activiti-osgi
nodocs
nodocs
true
distro
modules/activiti-bpmn-model
modules/activiti-process-validation
modules/activiti-image-generator
modules/activiti-bpmn-converter
modules/activiti-bpmn-layout
modules/activiti-json-converter
modules/activiti-secure-tasks
modules/activiti-secure-javascript
modules/activiti-secure-service-tasks
modules/activiti-dmn-model
modules/activiti-dmn-json-converter
modules/activiti-dmn-xml-converter
modules/activiti-dmn-engine
modules/activiti-dmn-engine-configurator
modules/activiti-dmn-rest
modules/activiti-form-model
modules/activiti-form-json-converter
modules/activiti-form-engine
modules/activiti-form-engine-configurator
modules/activiti-spring
modules/activiti5-engine
modules/activiti5-compatibility
modules/activiti5-spring
modules/activiti5-spring-compatibility
modules/activiti-spring-boot
modules/activiti-common-rest
modules/activiti-rest
modules/activiti-webapp-rest2
modules/activiti-cxf
modules/activiti-osgi
modules/activiti-camel
modules/activiti-mule
modules/activiti-ui
modules/activiti-cdi
modules/activiti-ldap
modules/activiti-jmx
modules/activiti-jms-spring-executor
modules/activiti-crystalball
modules/activiti-admin
tooling/archetypes/activiti-archetype-unittest
database
database
modules/activiti-engine
databaseform
databaseform
modules/activiti-form-model
modules/activiti-form-api
modules/activiti-form-engine
databasedmn
databasedmn
modules/activiti-dmn-model
modules/activiti-dmn-api
modules/activiti-dmn-engine
databasewithschemaform
databasewithschemaform
modules/activiti-form-model
modules/activiti-form-api
modules/activiti-form-engine
databasewithschemadmn
databasewithschemadmn
modules/activiti-dmn-model
modules/activiti-dmn-api
modules/activiti-dmn-engine
buildRestappDependencies
modules/activiti-bpmn-model
modules/activiti-process-validation
modules/activiti-image-generator
modules/activiti-json-converter
modules/activiti-secure-tasks
modules/activiti-secure-javascript
modules/activiti-secure-service-tasks
modules/activiti-bpmn-converter
modules/activiti-engine
modules/activiti-spring
modules/activiti-common-rest
modules/activiti-rest
true
org.zeroturnaround
jrebel-maven-plugin
generate-rebel-xml
process-resources
generate
java8
org.apache.maven.plugins
maven-javadoc-plugin
attach-javadocs
jar
-Xdoclint:none
http://activiti.org
Apache v2
http://www.apache.org/licenses/LICENSE-2.0.html
Alfresco
http://www.alfresco.com
Tijs Rademakers
Alfresco
http://www.alfresco.com
Joram Barrez
Alfresco
http://www.alfresco.com
Frederik Heremans
Alfresco
http://www.alfresco.com
Erik Winlöf
Alfresco
http://www.alfresco.com
Yvo Swillens
Alfresco
http://www.alfresco.com
Josh Long
Pivotal
http://www.pivotal.com
Etienne Studer
Edorasware
http://www.edorasware.com
José Antonio Álvarez
Edorasware
http://www.edorasware.com
Guy Brand
Edorasware
http://www.edorasware.com
Martin Grofcik
Edorasware
http://www.edorasware.com
Christian Muelder
Next Level Integration
http://next-level-integration.com/
Christian Stettler
Saeid Mirzaei
Atos worldline
http://www.worldline.com/
JIRA
https://activiti.atlassian.net/browse/ACT
Bamboo
http://bamboo.ci.codehaus.org/browse/ACT
[email protected]:Activiti/Activiti.git
scm:git:[email protected]:Activiti/Activiti.git
scm:git:[email protected]:Activiti/Activiti.git
4.修改activiti-spring-boot-starter-basic的pom
修改其版本号,并显式的去定义activiti版本号为6.0.0
4.0.0
org.activiti
activiti-spring-boot-starters
6.0.0
activiti-spring-boot-starter-basic
6.0.0-boot2
org.springframework.boot
spring-boot-configuration-processor
true
org.activiti
activiti-engine
6.0.0
org.activiti
activiti-spring
6.0.0
org.springframework.boot
spring-boot-starter-jdbc
org.activiti
activiti-rest
6.0.0
org.slf4j
slf4j-api
org.slf4j
slf4j-log4j12
true
org.activiti
activiti-common-rest
6.0.0
true
org.springframework.integration
spring-integration-java-dsl
${spring-integration-java-dsl.version}
true
org.codehaus.groovy
groovy
1.7.5
test
org.activiti
activiti-image-generator
6.0.0
true
org.activiti
activiti-bpmn-model
6.0.0
true
org.activiti
activiti-bpmn-layout
6.0.0
true
org.springframework.boot
spring-boot-starter-actuator
true
org.springframework.boot
spring-boot-starter-web
true
org.springframework.boot
spring-boot-starter-data-jpa
true
org.springframework.boot
spring-boot-starter-integration
true
org.springframework.boot
spring-boot-starter-security
true
com.h2database
h2
test
distro
org.apache.maven.plugins
maven-source-plugin
2.1.1
attach-sources
package
jar-no-fork
5.最后安装依赖包
mvn clean install -DskipTest