pageoffice 添加maven_maven添加pageoffice依赖 - CSDN
精华内容
参与话题
  • Maven项目中引用PageOffice

    千次阅读 2018-09-13 14:37:27
    我们知道,Maven为广大Java程序员提供一个免费的中央仓库,我们只要在pom.xml中定位了其坐标,那么Maven将会...将服务器本地的jar添加到服务器本地仓库(以pageoffice4.3.0.2.jar为例)。 拷贝pageoffice4.3.0.2...

    我们知道,Maven为广大Java程序员提供一个免费的中央仓库,我们只要在pom.xml中定位了其坐标,那么Maven将会自动下载构件,省去了许多手工劳动,提升了项目开发的效率。但是如何在maven项目中引用PageOffice呢?下面我们一起来了解一下。

    将服务器本地的jar添加到服务器本地仓库(以pageoffice4.3.0.2.jar为例)。

    1. 拷贝pageoffice4.3.0.2.jar到D盘根目录;
    2. 启动CMD命令窗口,输入:D: 回车,切换到D盘根目录下;
    3. 输入下面的命令:
    mvn install:install-file -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -Dversion=4.3.0.2  -Dpackaging=jar  -Dfile=pageoffice4.3.0.2.jar
    

    运行成功截图:

    在pom.xml中添加依赖:

        <dependency>
    		<groupId>com.zhuozhengsoft</groupId>
    		<artifactId>pageoffice</artifactId>
    		<version>4.3.0.2</version>
    	</dependency>
    展开全文
  • mvn install:install-file如何添加多个本地依赖包? 解决方法: 对于maven在同一个目录添加多个本地依赖包的问题,解决方法很简单,http://www.yayihouse.com/yayishuwu/chapter/1416...

    mvn install:install-file如何添加多个本地依赖包?

    解决方法:

    对于maven在同一个目录添加多个本地依赖包的问题,解决方法很简单,http://www.yayihouse.com/yayishuwu/chapter/1416

    展开全文
  • SpringBoot PageOffice 在线编辑 (完整版、有源码)

    千次阅读 热门讨论 2019-05-28 10:26:31
    文章目录简介实例环境准备生成license.lic文件把jar安装到maven使项目能够使用maven引入pom.xml 配置application.properties配置项目结构、代码介绍项目结构:BeanLinitConf类说明,PageOffice注入OfficeOnlineApi类...

    简介

    此文档讲的是SpringBoot和PageOffice整合,在线编辑office的文件,在网上找了很多资料
    第一个看到的是微软的“office online server”,这个太复杂了,需要安装中间件,安装还对系统有要求,必须是“windows server 2012 r2”或“Windows Server 2016”,但是这款是不收费的

    第二个看到的是卓正软件的PageOffice,这个是收费的,但是可以试用,下下来后demo也多,demo基本都是基于jsp页面的,我不想用jsp,我写的html页面

    第三个看到的是点聚的WebOffice,这个也是免费的,但是嘛,下下来的demo…不想说话,网页打开没有office客户端编辑那种界面,很不方便,也很不好操作,看了一眼直接放弃

    最后我选择使用PageOffice

    实例环境准备

    技术 版本
    Jdk 1.8
    SpringBoot 2.1.5
    PageOffice 4.5.0.9
    Tomcat 8.0.32

    去官网下载PageOffice包,下载地址:
    http://www.zhuozhengsoft.com/download/PageOffice_4.5.0.9_Java.zip

    解压后里面会有:
    说明解压后的目录文件结构

    生成license.lic文件

    把Samples4文件夹复制到Tomcat的webapp目录下,在启动tomcat访:http://localhost:8080/Samples4
    访问后页面会提示输入公司名称等信息,然后输入序列号,序列号如上图文件目录下有个序列号.txt复制进去填入即可,我点击的是在线注册,注册成功后会在tomcat的webapp下的Samples4下的WEB-INF/lib目录下生成一个license.lic文件
    文件展示
    你也可以访问看demo,有很多实例,可以实现哪些功能:
    展示
    这时候tomcat已经没什么用了,可以关掉了

    把jar安装到maven使项目能够使用maven引入

    lib目录展示
    进入集成文件夹里面的lib目录,复制目录地址,打开命令窗口,使用cd进入复制的地址目录,执行:

    mvn install:install-file -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -Dversion=4.5.0.9  -Dpackaging=jar  -Dfile=pageoffice4.5.0.9.jar
    

    执行后结果展示

    pom.xml 配置

    <!-- 添加PageOffice依赖(必须) -->
    	<dependency>
    		<groupId>com.zhuozhengsoft</groupId>
    		<artifactId>pageoffice</artifactId>
    		<version>4.5.0.9</version>
    	</dependency>
    	<!-- 页面配置 -->
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-thymeleaf</artifactId>
    	</dependency>
    

    application.properties配置

    # 注册PageOffice后license.lic存放的路径,访问poserver.zz的时候需要license.lic文件(我这里就是resources目录下的file目录,我写的是绝对路径)
    posyspath=G:/ideaProject/springboot-demo/online-office/src/main/resources/file/
    

    项目结构、代码介绍

    项目结构:

    项目结构介绍

    BeanLinitConf类说明,PageOffice注入

    package com.onlineoffice.conf;
    
    import com.zhuozhengsoft.pageoffice.poserver.Server;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * @Description :初始化Bean
     * ---------------------------------
     * @Author : SG.Y
     * @Date : 2019/5/9 15:40
     */
    @Configuration
    @ConfigurationProperties
    public class BeanInitConf {
    
        // PageOffice配置
        private String posyspath;
    
        /***
         * PageOffice 注册
         * @return
         */
        @Bean
        public ServletRegistrationBean servletRegistrationBean() {
            Server poserver = new Server();
            //设置PageOffice注册成功后,license.lic文件存放的目录
            poserver.setSysPath(posyspath);
            ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
            // 下面是把资源文件暴露出来,必须配置,否则页面访问不了
            srb.addUrlMappings("/poserver.zz", "/posetup.exe", "/pageoffice.js", "/jquery.min.js", "/pobstyle.css", "/sealsetup.exe");
            return srb;
        }
    
        public void setPosyspath(String posyspath) {
            this.posyspath = posyspath;
        }
    
    }
    

    OfficeOnlineApi类介绍

    package com.onlineoffice.api;
    
    import com.zhuozhengsoft.pageoffice.FileSaver;
    import com.zhuozhengsoft.pageoffice.OpenModeType;
    import com.zhuozhengsoft.pageoffice.PageOfficeCtrl;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.Map;
    
    /**
     * @Description :Office在线编辑、预览API
     * ---------------------------------
     * @Author : SG.Y
     * @Date : 2019/5/14 16:36
     */
    @Controller
    public class OfficeOnlineApi {
    
        @Value("${posyspath}")
        private String filePath;
    
        /**
         * 在线word文档编辑
         *
         * @param request
         * @param map
         * @return
         */
        @GetMapping("/word")
        public String showWord(HttpServletRequest request, Map<String, Object> map) {
            PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
            //设置授权程序servlet
            poCtrl.setServerPage("/poserver.zz");
            //添加自定义按钮
            poCtrl.addCustomToolButton("保存", "Save", 1);
            //保存按钮接口地址
            poCtrl.setSaveFilePage("/save");
            //打开文件(打开的文件类型由OpenModeType决定,docAdmin是一个word,并且是管理员权限,如果是xls文件,则使用openModeType.xls开头的,其他的office格式同等),最后一个参数是作者
            // TODO 这里有个坑,这里打开的文件是本地的,地址如果写成/结构的路径,页面就会找不到文件,会从http://xxxxx/G/id...去找,写成\\就是从本地找
            poCtrl.webOpen("G:\\ideaProject\\springboot-demo\\online-office\\src\\main\\resources\\file\\test.docx", OpenModeType.docAdmin, "光哥");
            //pageoffice 是文件的变量,前端页面通过这个变量加载出文件
            map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1"));
            //跳转到word.html
            return "word";
        }
    
        /**
         * 在线ppt文档编辑
         *
         * @param request
         * @param map
         * @return
         */
        @GetMapping("/ppt")
        public String showPPT(HttpServletRequest request, Map<String, Object> map) {
            PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
            //设置授权程序servlet
            poCtrl.setServerPage("/poserver.zz");
            //添加自定义按钮
            poCtrl.addCustomToolButton("保存", "Save", 1);
            //保存接口地址
            poCtrl.setSaveFilePage("/save");
            //打开文件(打开的文件类型由OpenModeType决定,docAdmin是一个word,并且是管理员权限,如果是xls文件,则使用openModeType.xls开头的,其他的office格式同等),最后一个参数是作者
            // TODO 这里有个坑,这里打开的文件是本地的,地址如果写成/结构的路径,页面就会找不到文件,会从http://xxxxx/G/id...去找,写成\\就是从本地找
            poCtrl.webOpen("G:\\ideaProject\\springboot-demo\\online-office\\src\\main\\resources\\file\\test.pptx", OpenModeType.pptNormalEdit, "光哥");
            //pageoffice 是文件的变量,前端页面通过这个变量加载出文件
            map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1"));
            //跳转到word.html
            return "ppt";
        }
    
        /**
         * 保存文件接口
         *
         * @param request
         * @param response
         */
        @RequestMapping("/save")
        public void saveFile(HttpServletRequest request, HttpServletResponse response) {
            // 保存修改后的文件
            FileSaver fs = new FileSaver(request, response);
            fs.saveToFile("G:\\test\\在线编辑\\" + fs.getFileName());
            fs.close();
        }
    
    }
    

    word.html 页面介绍

    这里只展示word.html,ppt.html和word基本一样的

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="UTF-8">
        <title>在线编辑Office文件</title>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="pageoffice.js" id="po_js_main"></script>
    </head>
    <body>
    <!--POBrowser打开一个窗口用来编辑文件-->
    <a id="open_a" style="display: none;" onclick="javascript:POBrowser.openWindowModeless('/word','width=1200px;height=800px;');" href="#">打开文件</a>
    <!-- 页面布局 -->
    <div style="width:100%;height:900px; align-content: center" th:utext="${pageoffice}"></div>
    <script type="text/javascript">
        function Save() {
            document.getElementById("PageOfficeCtrl1").WebSave();
        }
    </script>
    <script>
        $(function () {
            var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
            var isOpera = userAgent.indexOf("Opera") > -1;
    		
    		// 获取浏览器类型
            function getType() {
                //判断是否chorme浏览器
                if (userAgent.indexOf("Chrome") > -1) {
                    return "Chrome";
                }
                //判断是否IE浏览器
                if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
                    return "IE";
                }
    
                //判断是否Edge浏览器
                if (userAgent.indexOf("Trident") > -1) {
                    return "Edge";
                }
            }
    
            // POBrowser打开一个窗口用来编辑文件
            function open() {
                $("#open_a").click();
            }
    
            // pageOffice有很多浏览器都不支持,不支持则使用POBrowser打开一个窗口用来编辑文件
            if (getType() != 'Edge') {
                // 延迟一秒在打开,是因为如果即时打开,可能有些文件请求还没加载好,会检测出客户端未安装pageOffice控件
                setTimeout(open, 1000)
            }
    
        });
    </script>
    </body>
    </html>
    

    启动后访问:

    在线编辑Word:http://localhost:8080/word
    在线编辑PPT:http://localhost:8080/ppt
    

    在这里插入图片描述
    在这里插入图片描述

    源码下载

    下载地址:https://github.com/y15211669315/online-office.git

    展开全文
  • Maven2 的简单用法

    千次阅读 2010-05-27 14:32:00
    1.Maven的安装1.1Windows 2000/xp下的安装1. 解压缩maven-2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假设你选择了C:/ProgramFiles/Apache Software Foundation/maven-2.0.2.2. 将C

    1.Maven的安装

    1.1Windows 2000/xp 下的安装

    1.       解压缩 maven-2.0.2-bin.zip 到你希望安装 Maven 2.0.2 的所在目录。这里假设你选择了 C:/ProgramFiles/Apache Software Foundation/maven-2.0.2.

    2.       将 C:/Program Files/Apache Software Foundation/maven-2.0.2/bin 目录加入到你的 %path% 环境变量中。

    3.       同时,确认 JAVA_HOME 是否正确设置成功。

    4.       运行 mvn --version 确认是否安装成功。

    显示 Maven version: 2.0.2 则表示安装成功。

    1.2 基于 Unxi - based 的操作系统( Linux , Solaris and Mac OS X )

    1.       解压缩发布包到你希望安装 Maven 2.0.2 的所在目录。这里假设你选择了 /usr/local/maven-

    2.       将 /usr/local/maven-2.0.2/bin 目录加入到你的 path 环境变量中 , 例如: PATH=/usr/local/maven-2.0.2y/bin: $PATH 。

    3.       同时,确认 JAVA_HOME 是否正确设置成功。

    4.       运行 mvn --version 确认是否安装成功。

    显示 Maven version: 2.0.2 则表示安装成功。

     

    2.Maven2.0 的一些优点:

    -- 标准的项目布局和项目结构生成器
    -- 多项目支持(只对开发环境相同的项目)
    -- 在开发者需要的时候及时地下载新的插件和功能部件( 主要的好处 )

    -- 标准的依赖管理机制
    -- 生成最新项目信息的网站
    -- 集成了源代码控制软件: CVS 和 Subversion

     

    2.1 项目标准化( 提供预定义的目录模板 )

          Maven一个重要特性是定义了项目的标准模板,官方说法是最佳实践。 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。 Maven2 根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。 Maven2 的标准目录结构如下:

     

    使用目录模板,可以使 pom.xml 更简洁。因为 Maven2 已经根据缺省目录,预定义了相关的动作,而无需人工的干预。以 resources 目录为例:

    • src/main/resources ,负责管理项目主体的资源。在使用 Maven2 执行 compile 之后,这个目录中的所有文件及子目录,会复制到 target/classes 目录中,为以后的打包提供了方便。
    • src/test/resources ,负责管理项目测试的资源。在使用 Maven2 执行 test-compile 之后,这个目录中的所有文件及子目录,会复制到 target/test-classes 目录中,为后续的测试做好了准备。

     

          可以通过命令 : mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app 创建一个单一的 maven 项目。创建好的项目,具有了特定的项目结构。这个项目结构是参考业界的最佳实践而成,为后面使用统一的 maven 命令打下了基础,如测试 mvn test 、打包 mvn package(在打包时需要指定 web.xml ,规范的结构可以不用指定 ) 等,无需写一行脚本,就可以方便的实现众多功能。 Maven 还提供其它一些类型模板,可以通过添加 -DarchetypeArtifactId= { type }创建,如 -DarchetypeArtifactId=maven-archetype-site ,生成 site 类型的项目。

       有了这个标准,项目间能方便的进行交流,你也很容易了解其它使用 maven 项目的结构。对于企业来说,引入 maven 就自然引入了规范,这可比费时费力的写文档,定规范有效的多了。

     

    2.2 文档和报告

    使用 mvn site 可以快速生成项目站点, apache 很多开源项目站点都采用 maven 生成,会出现 built by maven 字样的图标。

    而 maven 提供的针对如 junit , checkstyle , pmd 等的插件,能够方便的进行测试和检查并能直接生成报告。使用都很简单,如 mvn surefire-report:report 就能自动进行 junit 测试,并生成 junit 报告, mvn pmd:pmd 生成 pmd 报告。具体使用可以在 http://maven.apache.org/plugins/index.html 找到。

    2.3类库管理

    Maven 一个很重要的特色就是类库管理。通过在 pom.xml 中定义 jar 包版本和依赖,能够方便的管理 jar 文件。以下是一个简单的 jar 定义片断:

    <dependency>                                                                      

          <groupId>org.hibernate</groupId>

          <artifactId>hibernate</artifactId>

          <version>3.1</version>

          <type>jar</type>

          <scope>runtime</scope>

      </dependency>

    这个片断告诉我们 , 依赖的 jar 包 groupId 为 org.hibernate , artifactId 为 hibernate , 版本为 3.1 , scope 为 runtime 。在实际项目中 , 会将 M2_REPO(maven 本地仓库地址 )/ org/hibernate / hibernate /3.1/ hibernate -3.1.jar 放入 classpath 。

    同时 maven 会通过 pom.xml 管理 jar 包间的依赖。比如上面的 hibernate-3.1.jar 同级目录肯定会有一个 hibernate -3.1.pom ,在这个 pom 文件中指定了这个 jar 对其它一些 jar 的依赖。而这个 pom 文件是远程仓库提供,无需进行修改,执行 maven 相关命令就会自动根据相关依赖去下载 jar 包。这样只需定义对 hibernate 的依赖而无需关心相关 jar ,在构建项目上方便了很多。

    因为 pom 文件对 jar 的管理,也产生了一个很吸引人的特性:项目文件很小。以往一个 web 项目中, jar 文件都要放入 WEB-INF/lib 下,并放入 cvs(svn) 中,很容易就达到几十 M 。而通过 maven ,只需一个 pom.xml ,在执行 mvn eclipse:eclipse 时再去远程仓库下载,项目文件一般只需几百 K 。

    <dependency> 中还引入了 <scope> ,它主要管理依赖的部署。 目前<scope>可以使用5个值:

    compile,缺省值,适用于所有阶段,会随着项目一起发布。

    provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

    runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

    test ,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

    system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

    2.4发布管理

    使用 maven 可以方便的进行项目发表管理。在项目开发到一定阶段,可以使用 mvn package 打包,它会自动先运行 mvn test ,跑所有的 testcase ,只有全部通过才能正确打包。生成的 war 包(如果项目的 packaging 为 war )在 target 目录下。这个 war 包与使用 ant 脚本生成一样,但无需一行脚本,这也是 maven 对比 ant 的优势之一。使用 mvn install 将编译和打包好的文件发布到 distributionManager 指定的远程 repository 。使用 mvn deploy 可以自动管理项目版本。

    3. 常用的命令

    您可以在 Maven 安装目录下的 conf 目录中,或者项目自身中修改 Maven 远程存储库的选择。 POM 是“项目对象模型”的缩写。

    创建完项目后,我们可以往项目里添加代码并使用 Maven 的所有全新技巧。注意以下命令必须在 pom.xml 文件所在的目录中运行。
    --mvn test:运行应用程序中的单元测试
    --mvn package:依据项目生成jar文件
    --mvn install,把包安装在本地 的repository中,可以被其他工程作为依赖来使用
    --mvn site:生成项目相关信息的网站
    --mvn clean:清除目标目录中的生成结果
    --mvn eclipse:eclipse:生成Eclipse项目文件

    --mvn deploy ,在整合或者发布环境下执行,将最终版本的包拷贝到远程 的 repository ,使得其他的开发者或者工程可以共享。

    可以通过对目标及相位的组合使得一个命令完成多个功能,比如:

      mvn clean dependency:copy-dependencies package

    关于常用命令的详解,见参考资料。

    4. 第一个例子

    参见《 Maven 入门 -- 概念与实例 》

     

    D:/maven/demo>mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=app
    该工程的groupId是ce.demo.mvn,那么该工程的源文件将放在Java包ce.demo.mvn中。artifactId是app,那么该工程根目录的名称将为app。

    D:/maven/demo>mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=webapp -DarchetypeArtifactId=maven-archetype-webapp

    此命令与创建app的命令的不同之处是,多设置了一个属性archetypeArtifacttId,该属性的值为maven-archetype-webapp。 即告诉 Maven ,将要创建的工程是一个 Web 应用工程。创建 app 工程时没有使用该属性值,是由于 archetype 默认创建的是应用程序工程。 详细的解释及命令参数见 http://maven.apache.org/plugins/

    不用担心如何从 WEB-INF/lib 目录中得到依赖项,在依赖属性值被设置成 compile 的情况下, Maven 会自动包含依赖项。也可以将以下代码添加到 pom.xml 文件中来改变 war 文件的名称:

    <build>
        <finalName>PromoteC</finalName>
    </build>

                  将本地的存储库放在一台 web 服务器上也同样是个便利之举,这样整个开发团队就能从此获益,每个人都没有必要去管理自己的存储库了。改变 Maven 的存储库路径只需简单地编辑其安装目录下 conf 文件夹下面的 settings.xml 文件即可。(详情见私服的架设)

    5. 文档编制

    对于如何创建和编制文档, maven 有一个简单的示例命令:

    mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-site

    执行了以上命令后,我们将得到一个目录结构:

    你现在可以看到一个 $basedir/src/site 目录,以及它包含的一些站点描述文件( site.xml,site_fr_xml ),和各种 maven 支持的文档格式相对应的目录和示例文档都已经产生。

    以上的创建只是示例,我们自己创建时就没有命令行使用了,只能按照上面的目录结构创建我们需要的文档 ,创建完成后,运行 mvn site 。 并在文档中写入我们工程的信息。

    关于文档编制的详细说明,见参考资料。

    6. 依赖管理

    一个简单的例子。比如我们要添加一个 log4j 到我们的工程中。首先.需要了解 log4j 的 groupId, artifactId, and version 信息。可在 google 上搜索“ site:www.ibiblio.org maven2 log4j ” 。这样在搜索结果里可以找到 /maven2/log4j/log4j (or /pub/packages/maven2/log4j/log4j) 这样的目录,在这个目录中有一个文件叫做 maven-metadata.xml 。根据这个文件可以知道 groupId 为 log4j , artifactId 为 log4j , version 当然要用最新的。 scope 我们设置为 compile 。这样我们使用 mvn compile 编译工程时,会看到 mvn 下载了 log4j 到我们的本地仓库。

     

    7. 配置存储库

    要求项目的每个开发者必须在 conf 目录中配置存储库是不方便的,所以 Maven 可以同时查看多个存储库并且将它们全部配置在 pom.xml 文件中。让我们看看一个例子,它展示了如何在应用程序用使用多个存储库。在以下从 pom.xml 文件摘录的片断中,我们设置了两个存储库来让 Maven 寻找依赖项。 Ibiblio 一直是默认的存储库,我们又添加了 Planet Mirror 作为后援存储库。我们也可以让团队使用的本地 web 服务器作为第二个存储库。

     

    <repositories>

        <repository>

          <id>Ibiblio</id>

          <name>Ibiblio</name>

          <url>http://www.ibiblio.org/maven/</url>           // 此处按实际地址写,也有可能是 //http://mirrors.ibiblio.org/pub/mirrors/maven2/org, 看出错报告调整 。对于找不到的 jar 包要写出他的真实路径。

        </repository>

        <repository>

          <id>PlanetMirror</id>

          <name>Planet Mirror</name>

          <url>http://public.planetmirror.com/pub/maven/</url>

        </repository>

    </repositories>

     

    当下载某些 jar 包时,会自动把相关依赖的包都下载下来。

    如下面所示,会自动下载对应文件夹中 pom.xml 文件上所要求的包。

    <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-jpa</artifactId>

          <version>2.0</version>

          <scope>test</scope>               //scope 为 compile 时,在执行 mvn package 时,会将该包拷贝到 target/{projectName}/WEB-INF/lib/ 目录下

        </dependency>

    若在下载过程中出现 java.net.SocketException: Connection reset 错误 , 估计是该连接存在 , 但是下载不了。换别的网址或换个版本下载吧。若出现 Failed to resolve artifact 则估计是根本就不存在该连接。查看一下实际下载的地址是否存在。

    Maven 是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如 jar , tld , pom ,等。当编译的时候, maven 会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而 ant 需要自己定义了。这个好处导致的结果就是,用 maven 编译的项目在发布的时候只需要发布源码,小得很,而 ant 的发布则要把所有的包一起发布,显然 maven 又胜了一筹。

          编译时,出错的测试代码,只能显示到如下程度:

    Running jp.co.benic.usp.webapp.action.USPJ320ActionTest

    Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.266 sec <<< FAILURE!

    Running jp.co.benic.usp.webapp.action.USPJ510ActionTest

    Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.515 sec <<< FAILURE!

    若想看完整的错误信息,需要到 target/surefire-reports 目录下,看相关的错误日志文件。

                  对于在下载 jar 时,不想下载他所自带的依赖的某些包,可以用 < dependency >

    < exclusions >
                         < exclusion >
                             < groupId > dom4j </ groupId >
                             < artifactId > dom4j </ artifactId >
                         </ exclusion >                     
                     </ exclusions >

    < / dependency > 将指定的包过滤掉。

    缺点:编译的过程没有日志输出。(手动设置?)

    8. 私服的架设

    自己建个私服是不错的主意。其实也简单,随便拿台 http 服务器,把 ${user.home}/.m2/ 目录传上去就行了
         在 pom 文件中,把私服的 http url 写在官网的前面。    

      < repositories >
             < repository >
                 < id > springside </ id >
                 < url > http://www.springside.org.cn/maven2 </ url >
             </ repository >
             < repository >
                 < id > maven </ id >
                 < name > slowly office site </ name >
                 < url > http://repo1.maven.org/maven2 </ url >
             </ repository >
         </ repositories >

    9 . 如何部署 jar 到自己的远程 repository

    (但因为目前只支持 scp 这种远程拷贝方法,而不知道如何在 windows 中使用 scp ,顾此处没有实现)

    在 pom.xml 中添加如下内容 :

     

    <distributionManagement>

        <repository>

          <id>mycompany-repository</id>

          <name>MyCompany Repository</name>

          <url>scp://repository.mycompany.com/repository/maven2</url>

        </repository>

      </distributionManagement>

     

     

    同样在用户的 settings.xml 中也要定义服务器 :

     

    <settings>

      <servers>

        <server>

          <id>mycompany-repository</id>

          <username>jvanzyl</username>

          <!-- Default value is ~/.ssh/id_dsa -->

           <privateKey>/path/to/identity</privateKey> (default is ~/.ssh/id_dsa)

          <passphrase>my_key_passphrase</passphrase>

        </server>

      </servers>

    </settings>

    http://maven.apache.org/plugins/maven-deploy-plugin/index.html

    deploy 的介绍。 deploy:deploy-file 从远程仓库安装一个资源; deploy:deploy 部署一个资源到远库。程仓

    http://maven.apache.org/plugins/index.html     介绍 maven 的有效的插件及每个命令都是用来做什么的。

    10. 如何使用 Maven2 打包你的 Web 应用程序 ?

    解决方法 :

          pom.xml 的设置 :

                 打包类型设置为 “ war ” :

                 <packaging>war</packaging>

                 如果项目的 layout 不是 Maven2 默认的 , 可通过修改 plugin 的配置进行设置 , 例如 WebRoot 路径的设置如下 :

                 <build>

                     <!-- war 包名称 -->

                     <finalName>mywebapp</finalName>

                     <plugins>

                         <plugin>

                             <groupId>org.apache.maven.plugins</groupId>

                             <artifactId>maven-war-plugin</artifactId>

                             <configuration>

                                 <!-- 设置 WebContent 目录为 Web 目录 -->

                                 <warSourceDirectory>WebContent</warSourceDirectory>

                             </configuration>

                         </plugin>

                     </plugins>

                 </build>

     

    打包命令行 : mvn clean:clean package

     

    使用 maven2 打包时,可以过滤掉不想被打包的文件或文件夹。只要在 pom.xml 文件中做如下设置即可

    <build>

        <filters>

          <filter>src/main/filters/filter.properties</filter>

        </filters>

        <resources>

          <resource>

            <directory>src/main/resources</directory>

            <filtering>true</filtering>

          </resource>

        </resources>

      </build>

    11.Maven 和 eclipse 工具的合作

    当有了以上的工程目录,无论是 webapp 工程,还是 app ,我们都希望在集成开发环境中开发。 Maven 如何和 IDE 集成。现在我们就来进行讲解。

    11.1首先要让eclipse知道Maven 2的repository(仓库) 的路径

    因此要设置一个M2_REPO的变量为classpath。

    可以使用命令行的方式来设置:

    mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo

    还可以在eclipse中定义一个新的classpath变量通过在eclipse的菜单上选择Window> Preferences. 选择Java > Build Path > Classpath Variables page.

    11.2生成eclipse的工程文件。

    使用命令行

    mvn eclipse:eclipse

    这样通过在eclipse的菜单上选择File >Import >Existing Projects into Workspace,就可以将工程导入eclipse中。

     

    通过以上2个步骤,我们就可以利用eclipse来进行开发工作了。

    11.3Eclipse插件mavenide

    同时在eclipse中我们可以下载一个maven的插件,用来辅助eclipse进行maven工程的开发工作。这个插件名称叫做mavenide。

    这个插件可使用以下更新站点:http://m2eclipse.codehaus.org/

    并且非常方便的是,这里还提供了一个 flash 的演示来介绍如何安装此插件,这个 flash 演示的观看地址在:

    http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.html

    要正常使用此插件请注意以下问题:

    eclipse使用3.1或以上版本。

    Mavenide的插件为0.0.5不要安装错误了。

    通过笔者在安装好此插件的一些使用后,看到了此插件的以下一些特性。

    1. 可以方便的添加依赖。

    2. 在编辑完 pom.xml 文档后,会自动检查此文档的格式是否正确。

    3. 可以将 mvn 的一些命令通过扩展工具的方式在 eclipse 中轻松执行。

    12. 在 ANT 中使用 Maven2

    Maven 2.0 中的 Ant 任务可以利用 Maven 中的 artifact 来处理 Ant 中的功能。

    这些包括 :

    依赖管理 - 包括传递依赖 , 范围识别和 SNAPSHOT 处理 ;

    Artifact 部署 - 基于文件和 SSH 的部署 ;

    POM 处理 - 读取 Maven 2.0 的 pom.xml 文件。

    12.1 安装 Antlib

    把 jar 包放在 %ANT_HOME% 的 lib 目录下面 , 添加在 CLASSPATH 中 , 或是使用 -lib 命令行参数。

    在 ant文件的起始添加命名空间:

    <project ... xmlns:artifact="antlib:org.apache.maven.artifact.ant">

    12.2 声明 typedef

    使用 typedef可以把库放在任何位置,并把它的位置放在 build文件中。这可以用来在启动的时候获取库,然后在构建脚本中引用它。

    下面这个例子中,假设库放在 lib目录下面。

     

    <project ... xmlns:artifact="urn:maven-artifact-ant">

      <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">

        <classpath>

          <pathelement location="lib/maven-artifact-ant-2.0-beta-1.jar" />

        </classpath>

      </typedef>

    12.3声明依赖

    通过 dependencies 任务来声明依赖。

    最简单的用法是直接声明 :

    <artifact:dependencies pathId="dependency.classpath">

      <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test"

                  version="1.0-alpha-2"/>

      <dependency groupId="org.codehaus.modello" artifactId="modello-core"

                   version="1.0-alpha-2-SNAPSHOT"/>

      <dependency groupId="javax.servlet" artifactId="servlet-api"

                  version="2.4" scope="provided" />

    </artifact:dependencies>

     

    注意其中的 pathId 引用 , 可以用来在其他地方引用。

    <javac ...>

      <classpath refid="dependency.classpath" />

      ...

    </javac>

    另外一个是 filesetId,, 可以用来拷贝文件到某个特定位置。 <dependencies filesetId="dependency.fileset" useScope="runtime">

      ...

    </dependencies>

    <copy todir="${webapp.output}/WEB-INF/lib">

      <fileset refid="dependency.fileset" />

      <mapper type="flatten" />

    </copy>

    12.4声明 Repositories

    所有的任务都可以接受一个或多个远程 repositories 来下载或是上传 , 以及一个本地 repository 来存储下载的文件和安装包。

    这些可以直接书写 (inline), 也可以通过 id/refid 来重用。

    <artifact:remoteRepository id="remote.repository" url="http://repository.mycompany.com/" />

    ...

    <artifact:dependencies>

      ...

      <remoteRepository refid="remote.repository" />

    </artifact:dependencies>

    如果 repository 需要认证 , 可以提供一个嵌套元素 :

    <authentication username="brett" privateKey="${user.home}/.ssh/id_dsa" />

    12.5 安装和部署你自己的 artifacts

    如果需要在不同的项目之间共享 artifacts, 可以通过 install 把它们放在本地的 repository 以供其他脚本访问 , 或是通过 deploy 部署到远程位置。 (这部分测试没通过,部署到本地仓库没问题,但部署到远程仓库不好用)

     

    安装和部署的时候需要 POM 文件。

    <artifact:pom id="maven.project" file="pom.xml" />

      <artifact:install file="target/maven-artifact-ant-2.0-alpha-3.jar">

        <pom refid="maven.project"/>

      </artifact:install>

        <artifact:deploy file="target/maven-artifact-ant-2.0-alpha-3.jar">

        <remoteRepository url="file://localhost/www/repository"/>

        <pom refid="maven.project"/>

      </artifact:deploy>

     

    通过协议而不是本地文件系统部署的话,需要注册其他协议的provider。

     

    <artifact:install-provider artifactId="wagon-ssh" version="1.0-alpha-5"/> 

      <artifact:deploy file="target/maven-artifact-ant-2.0-alpha-3.jar">

        <remoteRepository url="scp://localhost/www/repository">

          <authentication username="${repository.username}" privateKey="${user.home}/.ssh/id_dsa"/>

        </remoteRepository>

        <pom refid="maven.project"/>

      </artifact:deploy>

     

    12.6 使用 Maven POM 文件

    可以在 POM中直接定义依赖。

    为了把 POM作为 Ant的属性来访问,需要把它定义为引用。

    <artifact:pom id="maven.project" file="pom.xml" />

     

      <echo>The version is ${maven.project.version}</echo>

      <artifact:pom id="project" file="pom.xml" />

     

      <echo>The version is ${project.build.directory}</echo>

    用户的配置文件settings.xml同样可以引用。

    13. 在 Maven2 中使用 ANT

    传说是这样的:

    http://maven.apache.org/guides/mini/guide-using-ant.html

    具体没有试过。

    参考资料

    Maven 入门 -- 概念与实例

    http://www.blogjava.net/jiangshachina/archive/2006/09/01/67080.aspx

     

    Maven2 的官方文档

    http://maven.apache.org/guides/getting-started/index.html#How%20do%20I%20deploy%20my%20site ?

     

    maven 和 ant 的比较

    http://xiaozhou.javaeye.com/blog/23287

     

    maven2 的 pom.xml 文件的详细说明。

      http://maven.apache.org/pom.html#The%20Super%20POM

     

    maven2 的 pom.xml 文件各元素的详细说明。

    http://maven.apache.org/ref/current/maven-model/maven.html#class_scm

     

    maven2 的命令详解。

    http://maven.apache.org/plugins/

     

    有效利用 Maven2 的站点生成功能 -- Step by Step

    http://www.matrix.org.cn/resource/article/44/44491_Maven2.html

    展开全文
  • 最近做项目用到word、excel的在线浏览编辑功能,在网上找了很多的工具软件,一...此次开发用到的是卓正公司的pageoffice集成,需要购买使用。 简单介绍下Page Office: 1. 在web网页里打开、编辑、打印预览、打印W...
  • 安装相关软件去http://www.zhuozhengsoft.com/download.html 下载sealsetup.exe、pageoffice.jar和posetup.exe,jar包的话如果大家使用maven可以百度下maven导入本地jar包方法,拷贝posetup.exe到项目的WEB-INF\lib...
  • 拷贝pageoffice4.5.0.10.jar到D盘根目录。 打开一个cmd,输入下面命令进入d盘 cd /d d: 输入maven命令: mvn install:install-file -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -Dversion=4.5.0.10 -...
  • 单元测试系列[v1.0.0][SpringBootTest]

    万次阅读 2020-10-02 09:26:05
    【附源码】SpringBoot提供了丰富的用于单元测试的抽象类及工具类,例如【SpringBootTest】【AbstractTestNGSpringContextTests】【MockMvc】【RequestBuilder】【MockMvcRequestBuilders】【MockMvcResultMatchers】...
  • jobconverter文档详解

    万次阅读 2018-06-28 13:06:11
    JODConverter是一种Java OpenDocument转换器,能够转换不同格式的文档,它依赖于Apache OpenOffice或 LibreOffice ,它为OpenDocument和Microsoft Office提供了最好的免费导入/导出的过滤器。 JODConverter自动支持...
  • Maven应用

    千次阅读 2008-10-29 18:12:00
    1.Maven的安装1.1Windows 2000/xp下的安装1. 解压缩maven-2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假设你选择了C:/ProgramFiles/Apache Software Foundation/maven-2.0.2.2. 将C:/Program Files/...
  • 秒懂POI解析excel,SAXParser解析大xlsx,XSSFReader处理包括被忽略的空单元格处理 poi空单元格处理
  • 开发环境:JDK1.8、Eclipse、Sping Boot + Thymeleaf框架... 新建一个maven project项目:demo。 2. 修改pom.xml配置,把项目配置为Spring Boot项目; 3. 配置Thymeleaf:添加Thymeleaf依赖,并在application.prop...
  • Java Maven 根据模板生成PDF文件

    千次阅读 2018-11-23 17:24:48
    记录下,忘记是谁的文章了,侵权请联系博主删除。 参考:https://blog.csdn.net/CSDN__FL/article/details/82870571 pom: &lt;!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --&... ...
  • maven 简单用法

    2008-06-17 21:57:00
    导读: 1.Maven的安装 1.1Windows 2000/xp下的安装 1. 解压缩maven-2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假设你选择了C:/ProgramFiles/Apache Software Foundation/maven-2.0.2. 2. 将C:/Program ...
  • maven中 放入本地jar文件 (pageoffice插件使用) 1.将本地jar文件放到D盘 (pageoffice5.0.0.11.jar) 2.打开cmd 执行以下命令 mvn install:install-file -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -...
  • 1) 确定本机已正确安装maven环境 2) 准备安装到本地maven仓靠的jar包 2.maven命令 mvn install:install-file -Dfile=“本地jar包文件” -DgroupId=“groupID” -DartifactId=“artifactId” -Dversion=“version...
  • (一)介绍文件上传下载: (1)前端思路:  用formData封装好file以及相关参数,然后l利用ajax请求往后台传数据   html的代码: &lt;input id="... var formData = new FormData()...
1 2 3 4 5 ... 20
收藏数 446
精华内容 178
关键字:

pageoffice 添加maven