1、创建并设置Maven 项目
创建一个$quickStartJavaProjectName具有以下Maven依赖项的Java项目“ plush-activiti”(以后称为):
文件:$ mvnProject / pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
<!-- logback -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.22</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.22.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
请注意以下依赖性:
- Activiti(org.activiti)– Activiti的BPM引擎
- 数据库(mysql)– mysql数据库
- 日志记录(org.slf4j)– Java的简单日志记录外观
当引用构建目录时,假定您的maven项目的标准Maven构建路径:
路径 描述
$mvnProject/ src / main / java Java源目录
$mvnProject/ src / main / resources 资源目录
$mvnProject/ src / test / java Java测试目录
$mvnProject/ src / test / resources 资源测试目录
您应该能够构建空白项目。在继续之前,请确保总体状态为“ BUILD SUCCESS”。
命令:mvn编译
基本路径:$ mvnProject
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building $quickStartJavaProjectName 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ plush-activiti ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ HelloProcess2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.592s
[INFO] Finished at: Sun Nov 27 05:09:59 EST 2020
[INFO] Final Memory: 10M/309M
[INFO] -----------------------------
笔记:
- 您的输出可能看起来有所不同。最值得注意的是,maven可能需要检索项目依赖项。
2、添加log4j 日志文件
两种配置内容(效果一致):
文件:$ mvnProject / src / main / resources / log4j.properties
第一种:
log4j.rootLogger=DEBUG, ACT
log4j.appender.ACT=org.apache.log4j.ConsoleAppender
log4j.appender.ACT.layout=org.apache.log4j.PatternLayout
log4j.appender.ACT.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
第二种:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<!--<appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<file>${catalina.home}/logs/permission.log</file>-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--<FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>-->
<!--</rollingPolicy>-->
<!--<layout class="ch.qos.logback.classic.PatternLayout">-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>-->
<!--</layout>-->
<!--</appender>-->
<!---->
<!--<logger name="xxx" level="INFO">-->
<!--<appender-ref ref="permission"/>-->
<!--</logger>-->
<!-- TRACE < DEBUG < INFO < WARN < ERROR -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
3、创建流程引起对象
用空白的main创建一个新的Java类。
文件:$ mvnProject / src / main / java / com / webcode/ activiti_create.java
3.1 添加到主入口点的是流程引擎的创建。如下所示添加到activiti_create.java中:
public static void main(String[] args) { {
// 创建流程引擎配置信息对象
ProcessEngineConfiguration pec = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration();
// 设置数据库的类型
pec.setDatabaseType("mysql");
// 设置创建数据库的方式
pec.setDatabaseSchemaUpdate("true");
// 设置数据库驱动
pec.setJdbcDriver("com.mysql.jdbc.Driver");
// 设置jdbcURL
pec.setJdbcUrl("jdbc:mysql://49.234.197.103:3306/activiti-explorer?useUnicode=true&characterEncoding=UTF-8");
// 设置用户名
pec.setJdbcUsername("root");
// 设置密码
pec.setJdbcPassword("wushaopei");
// 构建流程引擎对象
ProcessEngine pe = pec.buildProcessEngine(); // 调用访方法才会创建数据表
String pName = pe.getName();
String ver = ProcessEngine.VERSION;
System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");
// 调用close方法时,才会删除
pe.close();
}
3.2 也可以通过 引入Activiti配置文件activiti.cfg.xml 的方式来创建流程引擎实例;
创建activiti.cfg.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://49.234.197.103:3306/activiti-explorer" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="wushaopei" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
流程引擎创建实例代码:
/**
* 使用xml配置 简化
*/
public static void main(String[] args) {{
// 引擎配置
ProcessEngineConfiguration pec=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
// 获取流程引擎对象
ProcessEngine processEngine=pec.buildProcessEngine();
String pName = processEngine.getName();
String ver = ProcessEngine.VERSION;
System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");
}
注意:使用xml配置会简化很多东西,而且在正规情况下的项目都是使用这种读取.XMl配置文件的方式。
之前生成Activiti25张表是使用Java类生成的,但是在实际的开发中是使用activiti.cfg.xml配置文件生成。
官方文档参考地址:http://activiti.org/userguide/index.html#configuration (英文看不懂可以用谷歌浏览器翻译功能)
4、打包配置
文件:$ mvnProject / pom.xml
<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">
...
<build>
...
<plugins>
...
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>com.example.OnboardingRequest</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
通过运行“ mvn package”来打包代码。
启动 .jar 包命令:
命令:java -jar target / ActivitiDeveloperQuickStart-0.0.1-SNAPSHOT-jar-with-dependencies.jar
-要么-
java -jar target / $ quickStartJavaProjectName-0.0.1-SNAPSHOT-jar-with-dependencies.jar