Browse Source

插件开发工程gradle化

master
richie 5 years ago
parent
commit
5681144ed9
  1. 6
      .gitignore
  2. 95
      build.gradle
  3. 2
      gradle/wrapper/gradle-wrapper.properties
  4. 91
      plugin-function/build.gradle
  5. 130
      plugin-function/build.xml
  6. 13
      plugin-function/encrypt.xml
  7. 27
      plugin-function/pom.xml
  8. 3
      plugin-function/readme.md
  9. 115
      plugin-function2/build.gradle
  10. 0
      plugin-function2/encrypt.xml
  11. 17
      plugin-function2/plugin.xml
  12. 3
      plugin-function2/readme.md
  13. 43
      plugin-function2/src/main/java/com/fr/plugin/function/math/MaxCommonDivisor.java
  14. 227
      pom.xml
  15. 17
      readme.md
  16. 6
      settings.gradle

6
.gitignore vendored

@ -3,4 +3,8 @@
/target/ /target/
/download/ /download/
/webroot/ /webroot/
.DS_Store .DS_Store
.gradle
build
local.properties
classes/

95
build.gradle

@ -1,60 +1,55 @@
/*
* This file was generated by the Gradle 'init' task.
*/
allprojects {
group = 'com.fr.plugin'
version = '10.0'
}
subprojects { apply plugin: 'java'
apply plugin: 'java' apply plugin: 'maven-publish'
apply plugin: 'maven-publish'
/**
*
*/
def fineVersion = '10.0-RELEASE-SNAPSHOT'
repositories { group = 'com.fr.plugin'
mavenLocal() version = '10.0'
maven {
url = uri('http://mvn.finedevelop.com/repository/maven-public/')
}
maven { repositories {
url = uri('http://repo.maven.apache.org/maven2') mavenLocal()
} maven {
url = uri('http://mvn.finedevelop.com/repository/maven-public/')
} }
dependencies { maven {
implementation 'com.fr.third:fine-third:10.0-RELEASE-SNAPSHOT' url = uri('http://repo.maven.apache.org/maven2')
implementation 'com.fr.activator:fine-activator:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.core:fine-core:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.webui:fine-webui:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.datasource:fine-datasource:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.decision:fine-decision:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.decision:fine-decision-report:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.schedule:fine-schedule:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.schedule:fine-schedule-report:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.intelligence:fine-swift:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.intelligence:fine-accumulator:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.report:fine-report-engine:10.0-RELEASE-SNAPSHOT'
implementation 'com.fr.report:fine-report-designer:10.0-RELEASE-SNAPSHOT'
implementation 'io.socket:socket.io-client:0.7.0'
implementation 'org.aspectj:aspectjrt:1.6.9'
implementation 'org.swingexplorer:swexpl:2.0'
implementation 'org.swingexplorer:swag:1.0'
implementation 'org.apache.tomcat:tomcat-catalina:8.5.32'
implementation 'mysql:mysql-connector-java:5.1.44'
implementation 'com.fr.third:jxbrowser:6.23.1'
implementation 'com.fr.third:jxbrowser-mac:6.23.1'
testImplementation 'junit:junit:4.12'
testImplementation 'org.easymock:easymock:3.5.1'
} }
}
sourceCompatibility = '1.6' task install(type: Copy) {
into "webroot/WEB-INF/lib"
from configurations.runtimeClasspath
}
publishing { dependencies {
publications { implementation 'com.fr.third:fine-third:' + fineVersion
maven(MavenPublication) { implementation 'com.fr.activator:fine-activator:' + fineVersion
from(components.java) implementation 'com.fr.core:fine-core:' + fineVersion
} implementation 'com.fr.webui:fine-webui:' + fineVersion
} implementation 'com.fr.datasource:fine-datasource:' + fineVersion
} implementation 'com.fr.decision:fine-decision:' + fineVersion
implementation 'com.fr.decision:fine-decision-report:' + fineVersion
implementation 'com.fr.schedule:fine-schedule:' + fineVersion
implementation 'com.fr.schedule:fine-schedule-report:' + fineVersion
implementation 'com.fr.intelligence:fine-swift:' + fineVersion
implementation 'com.fr.intelligence:fine-accumulator:' + fineVersion
implementation 'com.fr.report:fine-report-engine:' + fineVersion
implementation 'com.fr.report:fine-report-designer:' + fineVersion
implementation 'io.socket:socket.io-client:0.7.0'
implementation 'org.aspectj:aspectjrt:1.6.9'
implementation 'org.swingexplorer:swexpl:2.0'
implementation 'org.swingexplorer:swag:1.0'
implementation 'org.apache.tomcat:tomcat-catalina:8.5.32'
implementation 'mysql:mysql-connector-java:5.1.44'
implementation 'com.fr.third:jxbrowser:6.23.1'
implementation 'com.fr.third:jxbrowser-mac:6.23.1'
testImplementation 'junit:junit:4.12'
testImplementation 'org.easymock:easymock:3.5.1'
} }
sourceCompatibility = '1.8'

2
gradle/wrapper/gradle-wrapper.properties vendored

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip distributionUrl=https\://downloads.gradle-dn.com/distributions/gradle-6.3-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

91
plugin-function/build.gradle

@ -1,19 +1,41 @@
/* import org.codehaus.groovy.runtime.GStringImpl
* This file was generated by the Gradle 'init' task.
*/ plugins {
//zip命令 Gradle -> Tasks -> other -> zip id 'java'
dependencies { id 'maven-publish'
implementation fileTree(dir: 'lib', include: ['*.jar']) }
ext {
/**
* jar的路径
* 1.jar需要打包到zip中,lib根目录下
* 2.jar仅仅是编译时需要lib下子目录下即可
*/
libPath = "$projectDir/../webroot/WEB-INF/lib" as GStringImpl
/**
* class进行加密保护
*/
guard = true
def pluginInfo = getPluginInfo()
pluginPre = "fine-plugin"
pluginName = pluginInfo.id
pluginVersion = pluginInfo.version
} }
ant.importBuild("ant_build.xml")
group = 'com.fr.plugin'
version = '10.0'
sourceCompatibility = '8'
ant.importBuild("encrypt.xml")
//ant变量 //ant变量
ant.projectDir = projectDir ant.projectDir = projectDir
ant.references["compile.classpath"] = ant.path { ant.references["compile.classpath"] = ant.path {
fileset(dir: "lib", includes: '*.jar') fileset(dir: libPath, includes: '**/*.jar')
fileset(dir: "$rootDir/webroot/WEB-INF/lib", includes: '*.jar')
fileset(dir: ".",includes:"**/*.jar" ) fileset(dir: ".",includes:"**/*.jar" )
} }
//clean -> classes -> copyFiles -> compile_javas() -> preJar -> makeJar->copyFile->zip
classes.dependsOn('clean') classes.dependsOn('clean')
task copyFiles(type: Copy,dependsOn: 'classes'){ task copyFiles(type: Copy,dependsOn: 'classes'){
@ -22,36 +44,41 @@ task copyFiles(type: Copy,dependsOn: 'classes'){
into "$projectDir/classes" into "$projectDir/classes"
} }
task preJar(type:Copy,dependsOn: 'compile_javas'){ task preJar(type:Copy,dependsOn: guard ? 'compile_encrypt_javas' : 'compile_plain_javas'){
from "$projectDir/classes" from "$projectDir/classes"
into "$buildDir/classes/java/main" into "$buildDir/classes/java/main"
include "**/*.class"
doLast(){ doLast(){
delete file("$projectDir/classes") delete file("$projectDir/classes")
} }
} }
jar.dependsOn("preJar")
task makeJar(type: Jar,dependsOn: preJar){ task makeJar(type: Jar,dependsOn: preJar){
from fileTree(dir:"$buildDir/classes/java/main") //assets文件 from fileTree(dir:"$buildDir/classes/java/main")
baseName pluginPre
appendix pluginName
version pluginVersion
destinationDir = file("$buildDir/libs") destinationDir = file("$buildDir/libs")
} }
task copyFile(type: Copy,dependsOn: ["makeJar"]){ task copyFile(type: Copy,dependsOn: ["makeJar"]){
from "$buildDir/libs" from "$buildDir/libs"
from "$projectDir/lib" from("$projectDir/lib") {
include "*.jar"
}
from "$projectDir/plugin.xml" from "$projectDir/plugin.xml"
into file("$buildDir/temp/fr-"+"$project.name"+"-$project.version") into file("$buildDir/temp/plugin")
} }
task zip(type:Zip,dependsOn:["copyFile"]){ task zip(type:Zip,dependsOn:["copyFile"]){
from "$buildDir/temp" from "$buildDir/temp"
destinationDir file("$buildDir/install") destinationDir file("$buildDir/install")
//: baseName-appendix-0.0.1.zip baseName pluginPre
// baseName 'baseName' appendix pluginName
// appendix 'appendix' version pluginVersion
// version '0.0.1'
} }
//build时包含哪些文件, //build时包含哪些文件,
processResources { processResources {
// exclude everything // exclude everything
@ -60,3 +87,29 @@ processResources {
// except this file // except this file
// include 'xx.xml' // include 'xx.xml'
} }
/*读取plugin.xml中的version*/
def getPluginInfo(){
def xmlFile = file("plugin.xml")
if (!xmlFile.exists()) {
return ["id":"none", "version":"1.0.0"]
}
def plugin = new XmlParser().parse(xmlFile)
def version = plugin.version[0].text()
def id = plugin.id[0].text()
return ["id":id,"version":version]
}
repositories {
mavenLocal()
maven {
url = uri('http://mvn.finedevelop.com/repository/maven-public/')
}
}
dependencies {
//使jar
implementation fileTree(dir: 'lib', include: ['**/*.jar'])
implementation fileTree(dir: libPath, include: ['**/*.jar'])
}

130
plugin-function/build.xml

@ -1,130 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="jar" name="plugin">
<!-- JDK路径,根据自己机器上实际位置修改-->
<property name="jdk.home" value="/Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home"/>
<property name="libs" value="${basedir}/lib"/>
<property name="publicLibs" value=""/>
<property name="reportLibs" value="${basedir}/../webroot/WEB-INF/lib"/>
<property name="destLoc" value="."/>
<property name="classes" value="classes"/>
<xmlproperty file="${basedir}/plugin.xml"/>
<property name="current-version" value="${plugin.version}"/>
<!-- 插件版本-->
<property name="plugin-version" value="${current-version}"/>
<!-- 插件名字-->
<property name="plugin-name" value="function-test"/>
<property name="plugin-jar" value="fr-plugin-${plugin-name}-${plugin-version}.jar"/>
<target name="prepare">
<delete dir="${classes}"/>
<delete dir="fr-plugin-${plugin-name}-${plugin-version}"/>
<xmlproperty file="${basedir}/plugin.xml"/>
<delete dir="${destLoc}/${plugin.name}"/>
</target>
<path id="compile.classpath">
<fileset dir="${libs}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${publicLibs}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${reportLibs}">
<include name="**/*.jar"/>
</fileset>
</path>
<patternset id="resources4Jar">
<exclude name="**/.settings/**"/>
<exclude name=".classpath"/>
<exclude name=".project"/>
<exclude name="**/*.java"/>
<exclude name="**/*.db"/>
<exclude name="**/*.g"/>
<exclude name="**/package.html"/>
</patternset>
<target name="copy_resources">
<echo message="从${resources_from}拷贝图片,JS,CSS等资源文件"/>
<delete dir="tmp"/>
<copy todir="tmp">
<fileset dir="${resources_from}/src/main/resources">
<patternset refid="resources4Jar"/>
</fileset>
</copy>
<copy todir="${classes}">
<fileset dir="tmp"/>
</copy>
<delete dir="tmp"/>
</target>
<target name="compile_javas">
<echo message="编译${compile_files}下的Java文件"/>
<javac destdir="${classes}" debug="false" optimize="on" source="${source_jdk_version}"
target="${target_jdk_version}"
fork="true" memoryMaximumSize="512m" listfiles="false" srcdir="${basedir}"
executable="${compile_jdk_version}/bin/javac">
<src path="${basedir}/src/main/java"/>
<exclude name="**/.svn/**"/>
<compilerarg line="-encoding UTF8 "/>
<classpath refid="compile.classpath"/>
</javac>
<taskdef name="pretreatment" classname="com.fr.plugin.pack.PluginPretreatmentTask">
<classpath refid="compile.classpath"/>
</taskdef>
<pretreatment baseDir="${basedir}"/>
</target>
<target name="jar_classes">
<echo message="打Jar包:${jar_name}"/>
<delete file="${basedir}/${jar_name}"/>
<jar jarfile="${basedir}/${jar_name}">
<fileset dir="${classes}">
</fileset>
</jar>
</target>
<target name="super_jar" depends="prepare">
<antcall target="copy_resources">
<param name="resources_from" value="${basedir}"/>
</antcall>
<antcall target="compile_javas">
<param name="source_jdk_version" value="1.6"/>
<param name="target_jdk_version" value="1.6"/>
<param name="compile_jdk_version" value="${jdk.home}"/>
<param name="compile_files" value="${basedir}/src"/>
</antcall>
<echo message="compile plugin success!"/>
<antcall target="jar_classes">
<param name="jar_name" value="${plugin-jar}"/>
</antcall>
<delete dir="${classes}"/>
</target>
<target name="jar" depends="super_jar">
<antcall target="zip"/>
</target>
<target name="zip">
<property name="plugin-folder" value="fr-plugin-${plugin-name}-${plugin-version}"/>
<echo message="----------zip files----------"/>
<mkdir dir="${plugin-folder}"/>
<copy todir="${plugin-folder}">
<fileset dir=".">
<include name="${plugin-jar}"/>
<include name="plugin.xml"/>
</fileset>
<fileset dir="${libs}">
<include name="*.jar"/>
<include name="*.dll"/>
</fileset>
</copy>
<zip destfile="${basedir}/${plugin-folder}.zip" basedir=".">
<include name="${plugin-folder}/*.jar"/>
<include name="${plugin-folder}/*.dll"/>
<include name="${plugin-folder}/plugin.xml"/>
</zip>
<move file="${plugin-folder}.zip" todir="${destLoc}/install"/>
</target>
</project>

13
plugin-function/encrypt.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<target name="compile_encrypt_javas" depends="copyFiles">
<echo message="加密文件"/>
<echo message="${projectDir}"/>
<taskdef name="pretreatment" classname="com.fr.plugin.pack.PluginPretreatmentTask">
<classpath refid="compile.classpath"/>
</taskdef>
<pretreatment baseDir="${projectDir}"/>
</target>
<target name="compile_plain_javas" depends="copyFiles">
</target>
</project>

27
plugin-function/pom.xml

@ -1,27 +0,0 @@
<?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>
<parent>
<groupId>com.fr.plugin</groupId>
<artifactId>starter</artifactId>
<version>10.0</version>
</parent>
<packaging>jar</packaging>
<artifactId>plugin-function</artifactId>
<dependencies>
<dependency>
<groupId>com.fr.plugin</groupId>
<artifactId>gson</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/gson-2.3.1.jar</systemPath>
</dependency>
</dependencies>
<build>
<!---如果要更改调试插件,改这里的配置就可以了-->
<outputDirectory>${project.basedir}/../webroot/WEB-INF/plugins/plugin-com.fr.plugin.function.test-1.0/classes</outputDirectory>
</build>
</project>

3
plugin-function/readme.md

@ -0,0 +1,3 @@
# 函数插件
该函数可以对一组数值求绝对值。

115
plugin-function2/build.gradle

@ -0,0 +1,115 @@
import org.codehaus.groovy.runtime.GStringImpl
plugins {
id 'java'
id 'maven-publish'
}
ext {
/**
* jar的路径
* 1.jar需要打包到zip中,lib根目录下
* 2.jar仅仅是编译时需要lib下子目录下即可
*/
libPath = "$projectDir/../webroot/WEB-INF/lib" as GStringImpl
/**
* class进行加密保护
*/
guard = false
def pluginInfo = getPluginInfo()
pluginPre = "fine-plugin"
pluginName = pluginInfo.id
pluginVersion = pluginInfo.version
}
group = 'com.fr.plugin'
version = '10.0'
sourceCompatibility = '8'
ant.importBuild("encrypt.xml")
//ant变量
ant.projectDir = projectDir
ant.references["compile.classpath"] = ant.path {
fileset(dir: libPath, includes: '**/*.jar')
fileset(dir: ".",includes:"**/*.jar" )
}
classes.dependsOn('clean')
task copyFiles(type: Copy,dependsOn: 'classes'){
from "$buildDir/classes/java/main"
from "$buildDir/resources/main"
into "$projectDir/classes"
}
task preJar(type:Copy,dependsOn: guard ? 'compile_encrypt_javas' : 'compile_plain_javas'){
from "$projectDir/classes"
into "$buildDir/classes/java/main"
include "**/*.class"
doLast(){
delete file("$projectDir/classes")
}
}
jar.dependsOn("preJar")
task makeJar(type: Jar,dependsOn: preJar){
from fileTree(dir:"$buildDir/classes/java/main")
baseName pluginPre
appendix pluginName
version pluginVersion
destinationDir = file("$buildDir/libs")
}
task copyFile(type: Copy,dependsOn: ["makeJar"]){
from "$buildDir/libs"
from("$projectDir/lib") {
include "*.jar"
}
from "$projectDir/plugin.xml"
into file("$buildDir/temp/plugin")
}
task zip(type:Zip,dependsOn:["copyFile"]){
from "$buildDir/temp"
destinationDir file("$buildDir/install")
baseName pluginPre
appendix pluginName
version pluginVersion
}
//build时包含哪些文件,
processResources {
// exclude everything
// *.css没效果
// exclude '**/*.css'
// except this file
// include 'xx.xml'
}
/*读取plugin.xml中的version*/
def getPluginInfo(){
def xmlFile = file("plugin.xml")
if (!xmlFile.exists()) {
return ["id":"none", "version":"1.0.0"]
}
def plugin = new XmlParser().parse(xmlFile)
def version = plugin.version[0].text()
def id = plugin.id[0].text()
return ["id":id,"version":version]
}
repositories {
mavenLocal()
maven {
url = uri('http://mvn.finedevelop.com/repository/maven-public/')
}
}
dependencies {
//使jar
implementation fileTree(dir: 'lib', include: ['**/*.jar'])
implementation fileTree(dir: libPath, include: ['**/*.jar'])
}

0
plugin-function/ant_build.xml → plugin-function2/encrypt.xml

17
plugin-function2/plugin.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><plugin>
<id>com.fr.plugin.function.math</id>
<name><![CDATA[测试数学函数]]></name>
<active>yes</active>
<version>1.0</version>
<env-version>10.0</env-version>
<jartime>2018-07-31</jartime>
<vendor>author</vendor>
<description><![CDATA[可以把一组数组都求绝对值]]></description>
<change-notes><![CDATA[
[2020-06-02]初始化插件。<br/>
]]></change-notes>
<extra-core>
<FunctionDefineProvider class="com.fr.plugin.function.math.MaxCommonDivisor" name="MaxCommonDivisor" description="求两个整数的最大公约数。"/>
</extra-core>
<function-recorder class="com.fr.plugin.function.math.MaxCommonDivisor"/>
</plugin>

3
plugin-function2/readme.md

@ -0,0 +1,3 @@
# 函数插件
该函数可以求两个整数的最大公约数。

43
plugin-function2/src/main/java/com/fr/plugin/function/math/MaxCommonDivisor.java

@ -0,0 +1,43 @@
package com.fr.plugin.function.math;
import com.fr.general.GeneralUtils;
import com.fr.intelli.record.Focus;
import com.fr.record.analyzer.EnableMetrics;
import com.fr.script.AbstractFunction;
import com.fr.stable.ArrayUtils;
import com.fr.stable.Primitive;
import com.fr.stable.exception.FormulaException;
/**
* @author richie
* @version 10.0
* Created by richie on 2020/6/2
*/
@EnableMetrics
public class MaxCommonDivisor extends AbstractFunction {
@Override
@Focus(id="com.fr.plugin.function.math", text="")
public Object run(Object[] args) throws FormulaException {
int len = ArrayUtils.getLength(args);
if (len < 2) {
return Primitive.ERROR_VALUE;
}
int m = GeneralUtils.objectToNumber(args[0]).intValue();
int n = GeneralUtils.objectToNumber(args[1]).intValue();
return maxCommonDivisor(m, n);
}
public static int maxCommonDivisor(int m, int n) {
if (m < n) {
int temp = m;
m = n;
n = temp;
}
if (m % n == 0) {
return n;
} else {
return maxCommonDivisor(n, m % n);
}
}
}

227
pom.xml

@ -1,227 +0,0 @@
<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>com.fr.plugin</groupId>
<artifactId>starter</artifactId>
<version>10.0</version>
<packaging>pom</packaging>
<properties>
<common-version>10.0-RELEASE-SNAPSHOT</common-version>
<web-inf-bucket>${project.basedir}/webroot/WEB-INF</web-inf-bucket>
</properties>
<modules>
<module>plugin-function</module>
</modules>
<dependencies>
<!-- core包 -->
<dependency>
<groupId>com.fr.third</groupId>
<artifactId>fine-third</artifactId>
<version>${common-version}</version>
</dependency>
<dependency>
<groupId>com.fr.activator</groupId>
<artifactId>fine-activator</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fr.core</groupId>
<artifactId>fine-core</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fr.webui</groupId>
<artifactId>fine-webui</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 数据源包 -->
<dependency>
<groupId>com.fr.datasource</groupId>
<artifactId>fine-datasource</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 决策平台包 -->
<dependency>
<groupId>com.fr.decision</groupId>
<artifactId>fine-decision</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fr.decision</groupId>
<artifactId>fine-decision-report</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 定时调度包 -->
<dependency>
<groupId>com.fr.schedule</groupId>
<artifactId>fine-schedule</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fr.schedule</groupId>
<artifactId>fine-schedule-report</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 智能日志包 -->
<dependency>
<groupId>com.fr.intelligence</groupId>
<artifactId>fine-swift</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fr.intelligence</groupId>
<artifactId>fine-accumulator</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 报表引擎包 -->
<dependency>
<groupId>com.fr.report</groupId>
<artifactId>fine-report-engine</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 设计器包 -->
<dependency>
<groupId>com.fr.report</groupId>
<artifactId>fine-report-designer</artifactId>
<version>${common-version}</version>
<scope>compile</scope>
</dependency>
<!-- 远程设计用包 -->
<dependency>
<groupId>io.socket</groupId>
<artifactId>socket.io-client</artifactId>
<version>0.7.0</version>
<scope>compile</scope>
</dependency>
<!-- AOP用包 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
<scope>compile</scope>
</dependency>
<!-- 设计器调试用包 -->
<dependency>
<groupId>org.swingexplorer</groupId>
<artifactId>swexpl</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.swingexplorer</groupId>
<artifactId>swag</artifactId>
<version>1.0</version>
</dependency>
<!-- tomcat包 -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.5.32</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<dependency>
<groupId>com.fr.third</groupId>
<artifactId>jxbrowser</artifactId>
<version>6.23.1</version>
</dependency>
<dependency>
<groupId>com.fr.third</groupId>
<artifactId>jxbrowser-mac</artifactId>
<version>6.23.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.5.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<outputDirectory>${web-inf-bucket}/classes</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<!--不生成target/generated-sources/annotations-->
<proc>none</proc>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.basedir}/webroot/WEB-INF/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>fanruan</id>
<name>fanruan</name>
<url>http://mvn.finedevelop.com/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>fanruan</id>
<name>fanruan</name>
<url>http://mvn.finedevelop.com/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

17
readme.md

@ -1,17 +1,14 @@
# 工程配置指南 # 工程配置指南
## 安装maven ## 安装gradle
用于构建开发工程,文档参考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html 用于构建开发工程和插件包,文档参考:https://wiki.jikexueyuan.com/project/gradle/installing-gradle.html
## 安装ant
用于构建插件安装包,文档参考:http://wiki.jikexueyuan.com/project/ant/environment-setup.html
## 配置开发工程 ## 配置开发工程
直接使用IntelliJ IDEA打开这个目录即可。 直接使用IntelliJ IDEA打开这个目录即可。
如果需要复制jar包到webroot/WEB-INF/lib下,可以执行命令:```mvn install``` 如果需要复制jar包到webroot/WEB-INF/lib下,可以执行命令:```gradle install```
**注意:**该工程依赖的jar为私有maven服务器,注意不要删除pom.xml中的repositories **注意:**该工程依赖的jar为私有maven服务器,地址在build.gradle的repositories中定义
## 启动应用程序 ## 启动应用程序
@ -29,11 +26,13 @@
### 选择报表运行环境 ### 选择报表运行环境
一般情况启动设计器的时候,会自动使用上一次使用的报表运行环境,我们这里需要新建一个本地报表运行环境,并指向这个开发目录下的webroot/WEB-INF目录。 一般情况启动设计器的时候,会自动使用上一次使用的报表运行环境,我们这里需要新建一个本地报表运行环境,并指向这个开发目录下的webroot/WEB-INF目录。
## 增加新的插件
将插件源码目录放到跟目录下,同时修改settings.gradle文件,再刷新gradle配置即可。
## 修改依赖的jar版本 ## 修改依赖的jar版本
只需要更改pom.xml中的common-version属性即可。 只需要更改build.gradle中的fineVersion变量即可。
|common-version|含义| |fineVersion|含义|
|--------------|----| |--------------|----|
|10.0-RELEASE-SNAPSHOT|10.0的测试版本快照| |10.0-RELEASE-SNAPSHOT|10.0的测试版本快照|
|10.0-SNAPSHOT|10.0的正式版本快照| |10.0-SNAPSHOT|10.0的正式版本快照|

6
settings.gradle

@ -1,7 +1,3 @@
/*
* This file was generated by the Gradle 'init' task.
*/
rootProject.name = 'starter' rootProject.name = 'starter'
include(':plugin-function') include(':plugin-function')
include(':demo-chart-pie') include(':plugin-function2')

Loading…
Cancel
Save