alfresco6.1(源码版) + onlyoffice安装部署
简要说明
本次使用alfresco sdk4.1 + docker 部署安装alfresco6.1,并完美集成onlyoffice在线文档编辑插件。
docker部署安装alfresco6.1
其实很简单,下面为官方wiki安装文档翻译+补充版
前提环境
使用Alfresco SDK 4.1有许多软件要求。
- Java开发工具包(JDK)-版本11
- Maven3.3 +
- Docker-最新的稳定版本
- JRebel(可选),用于热重新加载Web资源,配置和类
- HotSwap代理(可选),用于热重新加载Web资源,配置和类
Java
ACS 6.0是使用Java 8编译和执行的,但强烈建议与使用Java 11的ACS 6.1+一起使用。
1.下载JDK 11,解压缩并将其配置为默认Java安装。
2. 验证JDK和JRE的安装。
$ javac -version
javac 11.0.1
$ java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
3.确保正确设置了JAVA_HOME,以便其他工具(例如Maven)将使用正确的版本。
maven
Alfresco建议您更新所有Maven版本。Linux发行版和软件包管理器倾向于捆绑较旧的发行版,这是最常见的陷阱。
1.Alfresco SDK 4.1需要Maven 3.3.0+,但是建议您下载最新版本。
2.下载并安装Apache Maven,并确保在您的路径上正确配置了它。
3.验证安装。
$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 11.0.1, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
Default locale: en_ES, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"
特别注意:
maven还需要修改path/apache-maven-3.6.3/conf/setttings.xml配置文件(添加alfresco 仓库),否则有些依赖包无法下载:
<mirrors>
<mirror>
<id>alfresco-public</id>
<mirrorOf>central</mirrorOf>
<name>Alfresco public</name>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
docker
Alfresco建议您更新所有Docker版本。如果您使用的是Windows或Mac的旧版本,则必须使用 存在一些已知问题的Docker Toolbox。
1.下载并安装Docker。
2.验证Docker的安装。
$ docker -v
Docker version 18.06.1-ce, build e68fc7a
从原型生成项目
1.成功配置Java和Maven之后,就该生成项目了。
mvn archetype:generate -Dfilter=org.alfresco:
系统将提示您选择所需的原型。以前可用的原型,alfresco-amp-archetype和share-amp-archetype仍会显示为一个选项,但是这些原型不是Alfresco SDK 4.1的一部分。
注意:如果使用Windows Powershell,则在过滤器部分周围需要双引号:mvn archetype:generate“ -Dfilter = org.alfresco:”。
输出看起来像这样:
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> org.alfresco.maven.archetype:alfresco-platform-jar-archetype (Sample project with full support for lifecycle and rapid development of Platform/Repository JARs and AMPs (Alfresco Module Packages))
2: remote -> org.alfresco.maven.archetype:alfresco-share-jar-archetype (Share project with full support for lifecycle and rapid development of JARs and AMPs (Alfresco Module
Packages))
3: remote -> org.alfresco.maven.archetype:alfresco-allinone-archetype (Sample multi-module project for All-in-One development on the Alfresco platform. Includes modules for Platform/Repository JAR and Share JAR)
...
2.选择以下原型之一:(我这里选择:alfresco-allinone-archetype。要了解它们之间的区别可转到说明)
- org.alfresco.maven.archetype:alfresco-allinone-archetype
- org.alfresco.maven.archetype:alfresco-platform-jar-archetype
- org.alfresco.maven.archetype:alfresco-share-jar-archetype
3.选择最新版本,例如4.1.0。(我到这步没有选择的,默认最新的了)
Choose org.alfresco.maven.archetype:alfresco-allinone-archetype version:
1: 2.0.0-beta-1
2: 2.0.0-beta-2
3: 2.0.0-beta-3
4: 2.0.0-beta-4
5: 2.0.0
6: 2.1.0
7: 2.1.1
8: 2.2.0
9: 3.0.0
10: 3.0.1
11: 4.0.0
12: 4.1.0
4.接下来,将提示您输入其他值,例如groupId,artifactId和package,如下所示:(这里输入自己需要的名称就好,或看第5步示例)
Define value for property 'groupId':
Define value for property 'artifactId':
[INFO] Using property: version = 1.0-SNAPSHOT
Define value for property 'package':
5.根据项目指定信息后,将出现最终确认。
Confirm properties configuration:
groupId: com.acme
artifactId: my-all-in-one
version: 1.0-SNAPSHOT
package: com.acme
Y: :
6.按Y,然后按Enter。
如果一切都已正确配置,则应该看到类似以下内容:
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: alfresco-allinone-archetype:4.1.0-SNAPSHOT
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.acme
[INFO] Parameter: artifactId, Value: my-all-in-one
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.acme
[INFO] Parameter: packageInPathFormat, Value: com/acme
[INFO] Parameter: package, Value: com.acme
[INFO] Parameter: groupId, Value: com.acme
[INFO] Parameter: artifactId, Value: my-all-in-one
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parent element not overwritten in /Users/Alfresco/my-all-in-one/my-all-in-one-platform/pom.xml
[INFO] Parent element not overwritten in /Users/Alfresco/my-all-in-one/my-all-in-one-share/pom.xml
[INFO] Parent element not overwritten in /Users/Alfresco/my-all-in-one/my-all-in-one-integration-tests/pom.xml
[INFO] Parent element not overwritten in /Users/Alfresco/my-all-in-one/my-all-in-one-platform-docker/pom.xml
[INFO] Parent element not overwritten in /Users/Alfresco/my-all-in-one/my-all-in-one-share-docker/pom.xml
[INFO] Executing META-INF/archetype-post-generate.groovy post-generation script
[INFO] Project created from Archetype in dir: /Users/Alfresco/my-all-in-one
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:11 min
[INFO] Finished at: 2019-01-10T16:21:46+01:00
[INFO] Final Memory: 17M/1024M
[INFO] ------------------------------------------------------------------------
7.您已成功生成第一个SDK 4.1项目。
项目内部,您将找到run.bat和run.sh脚本。这些是便利脚本,可让您快速编译/测试/运行项目。
在终端窗口中,使用:
- ./run.sh build_start 适用于Mac OS X或Linux。
- run.bat build_start 对于Windows。
如果这是您第一次这样做,那么Maven将需要一段时间来下载所有必需的依赖项,而Docker将需要一些时间来下载所有必需的映像。
第一次执行上面命令过程会非常久非常久,请一定要耐心等待哈…
等项目跑完就可以访问如下地址:(不修改端口的情况下)
acs:http://localhost:8080/afresco 效果图:
共享项目:http://localhost:8180/share/
登录用户名/密码:admin/admin
有关如何使用项目的更多信息,请访问使用生成的项目。
集成onlyoffice在线文档编辑插件
集成onlyoffice说难不难,说简单不简单。怎么这么说呢?来,边走边说,我们开始来集成吧:
从官方文档可知,我们要扩展第三方插件,都是通过Alfresco模块软件包(AMP)这种定制包装的方式来安装的。Ok,onlyoffice-alfresco 这个插件已经有大神写好了,我们来找到它onlyoffice-alfresco(👈对,就是它)。
我们点击进去,发现人家的文档已经很详细了,我们直接按照它的文档一步一步配置就好了,我这里就不重复写了哈,总结几个要点:
- 安装onlyoffice服务,推荐使用docker安装就好啦(官方文档有),源码版太麻烦,也没这个必要
- 获取onlyoffice-alfresco AMP包有两种方式:一种是把源码拉下来编译生成(麻烦);另一种就是直接在Releases中下载(方便简单),如下图:
- 最后重点来了,我们怎么去安装我们下载下来的AMP插件呢?要说难,就在这儿了。OK,那么问题来了,官方文档难道没有讲如何安装AMP包吗?有,是有的。而且文档上讲,安装AMP也非常简单。来我们一起来看看吧👉如何使用AMP或者直接看下面,我把核心部分复制出来了
安装第三方AMP
以下为官方文档内容:
在项目中安装第三方AMP非常简单。唯一的要求是将依赖项添加到项目中。默认配置将在相应的Docker映像中安装任何设置为maven依赖项的AMP。重要的是要记住,ACS和Share是分开的容器,因此如果是All-In-One项目,则需要在相应的docker模块中添加依赖项。
这是如何安装Florian Maul的Javascript控制台的示例。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>sample-module-platform-docker</artifactId>
<name>Alfresco Platform/Repository Docker Module</name>
<description>Platform/Repo Docker Module to generate the final Docker image</description>
<packaging>jar</packaging>
<parent>
<groupId>org.alfresco</groupId>
<artifactId>sample-module</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<properties>
</properties>
<dependencies>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>sample-module-platform</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- Javascript Console AMP -->
<dependency>
<groupId>de.fmaul</groupId>
<artifactId>javascript-console-repo</artifactId>
<version>0.6</version>
<type>amp</type>
</dependency>
</dependencies>
...
</project>
好了,示例大家也看了,的确好简单呀。
开开心心的来到maven中央仓库搜索了下onlyoffice-alfresco amp包,结果如下:
一个一个点开,压根没有我想要的AMP包呀,怎么办怎么办(我开始慌了🥶)?我灵机一动,咦,刚刚下载到本地有AMP包呀,那是否可以直接把它拖到本地的maven仓库下引用呀(心中狂喜😬)(其实,大家如果没有想通这点,就一直卡在这儿了,想通就很简单啦)。吓得我赶紧把那两个amp包安装到本地maven仓库,这是安装命令:
mvn install:install-file "-Dfile=onlyoffice-alfresco-share-1.4.1.amp" "-DgroupId=org.alfresco.onlyoffice" "-DartifactId=alfresco-share" "-Dversion=1.4.1" "-Dpackaging=amp"
都安装成功会出现success字样,图就不截了,下面就差把它们按照官方文档上的方式配置进去了:(platform和share两个项目都要相应配置上去哦)
<dependency>
<groupId>org.alfresco.onlyoffice</groupId>
<artifactId>alfresco-repo</artifactId>
<version>1.4.1</version>
<type>amp</type>
</dependency>
<dependency>
<groupId>org.alfresco.onlyoffice</groupId>
<artifactId>alfresco-share</artifactId>
<version>1.4.1</version>
<type>amp</type>
</dependency>
至此:重新构建并启动alfresco登录后,你会发现,世界如此美好😭~!
【广告】推荐一个好玩有趣的在线工具网站,喜欢可以收藏一下哦:
在线工具
效果预览
点击Edit in ONLYOFFICE后: