java-springboot SAP BOE报表登陆同步报表

葛烨
2023-12-01

对象类

package com.xxx.com.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class BOReportNode implements Serializable {
	private String id ;  //节点ID
	private String CUID ; //节点CUID
	private boolean isFold ;  //是否是文件夹
	private boolean isLeaf ;  //是否为子节点
	private String parentID ;//父节点ID
	private String parentCUID =null; //父节点CUID
	private int level = 0;
	private String text =null;
	private String iconCls;
	private List<BOReportNode> children = new ArrayList<BOReportNode>();
	private String target;

	public String getTarget() {
		return target;
	}

	public void setTarget(String target) {
		this.target = target;
	}

	public List<BOReportNode> getChildren() {
		return children;
	}

	public void setChildren(List<BOReportNode> children) {
		this.children = children;
	}


	public boolean isFold() {
		return isFold;
	}

	public void setIsFold(boolean isFold) {
		this.isFold = isFold;
	}

	public boolean isLeaf() {
		return isLeaf;
	}

	public void setIsLeaf(boolean isLeaf) {
		this.isLeaf = isLeaf;
	}

	private String type ;
	private int isUpdate = 1;
	private String url ;
	private String path ;
	private int showtype ;
	private boolean hidden ;
	private int isLinkItem ;
	private String itemcode;
	private int reporttype ;
	private String packageName ;
	private String usernamemd ;
	private String state;
	private boolean checked  ;
	private String kind;
	
	public String getState() {
		return state;
	}
	public void setState(String state) {
		this.state = state;
	}
	public boolean isChecked() {
		return checked;
	}
	public void setChecked(boolean checked) {
		this.checked = checked;
	}
	public String getKind() {
		return kind;
	}
	public void setKind(String kind) {
		this.kind = kind;
	}


	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getCUID() {
		return CUID;
	}
	public void setCUID(String cUID) {
		CUID = cUID;
	}

	public String getParentID() {
		return parentID;
	}
	public void setParentID(String parentID) {
		this.parentID = parentID;
	}
	public String getParentCUID() {
		return parentCUID;
	}
	public void setParentCUID(String parentCUID) {
		this.parentCUID = parentCUID;
	}
	public int getLevel() {
		return level;
	}
	public void setLevel(int level) {
		this.level = level;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public String getIconCls() {
		return iconCls;
	}
	public void setIconCls(String iconCls) {
		this.iconCls = iconCls;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
//	public Object getChecked() {
//		return checked;
//	}
//	public void setChecked(Object checked) {
//		this.checked = checked;
//	}
	public int getIsUpdate() {
		return isUpdate;
	}
	public void setIsUpdate(int isUpdate) {
		this.isUpdate = isUpdate;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
	public int getShowtype() {
		return showtype;
	}
	public void setShowtype(int showtype) {
		this.showtype = showtype;
	}
	public boolean isHidden() {
		return hidden;
	}
	public void setHidden(boolean hidden) {
		this.hidden = hidden;
	}
	public int getIsLinkItem() {
		return isLinkItem;
	}
	public void setIsLinkItem(int isLinkItem) {
		this.isLinkItem = isLinkItem;
	}
	public String getItemcode() {
		return itemcode;
	}
	public void setItemcode(String itemcode) {
		this.itemcode = itemcode;
	}
	public int getReporttype() {
		return reporttype;
	}
	public void setReporttype(int reporttype) {
		this.reporttype = reporttype;
	}
	public String getPackageName() {
		return packageName;
	}
	public void setPackageName(String packageName) {
		this.packageName = packageName;
	}
	public String getUsernamemd() {
		return usernamemd;
	}
	public void setUsernamemd(String usernamemd) {
		this.usernamemd = usernamemd;
	}

	@Override
	public String toString() {
		return "BOReportNode{" +
				"id='" + id + '\'' +
				", CUID='" + CUID + '\'' +
				", text=" + text +
				", isFold=" + isFold +
				'}';
	}
}

工具类

package com.xx.com.util;

import com.businessobjects.rebean.wi.ReportEngine;
import com.businessobjects.rebean.wi.ReportEngines;
import com.xx.com.bean.BOReportNode;
import com.crystaldecisions.sdk.exception.SDKException;
import com.crystaldecisions.sdk.framework.CrystalEnterprise;
import com.crystaldecisions.sdk.framework.IEnterpriseSession;
import com.crystaldecisions.sdk.framework.ISessionMgr;
import com.crystaldecisions.sdk.occa.infostore.IInfoObject;
import com.crystaldecisions.sdk.occa.infostore.IInfoObjects;
import com.crystaldecisions.sdk.occa.infostore.IInfoStore;
import com.crystaldecisions.sdk.occa.security.ILogonTokenMgr;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.*;

public class LoginBOUtils {
    Logger logger = LoggerFactory.getLogger(LoginBOUtils.class);


    private String username;
    private String password;
    private String boSystemIP;
    private String boEnterprise;


    public static void main(String[] args) throws Exception {
        LoginBOUtils
                bo = new LoginBOUtils("xx", "xx", "10.0.100.xxx:6400",
                "secEnterprise"); // File file=new File(path); String boUrl =
        //String aaa = bo.getBOUrl("10.0.100.xxx:7005", "AZWxLMstNjtNif0h9uFAkZE");
        //System.out.println(aaa);
        Map<String, Object> map = bo.loginBO();
        IEnterpriseSession enterpriseSession = (IEnterpriseSession) map.get("enterpriseSession");
        bo.syncBOReport(enterpriseSession);
    }


    public LoginBOUtils(String username, String password, String boSystemIP, String boEnterprise) {
        super();
        this.username = username;
        this.password = password;
        this.boSystemIP = boSystemIP;
        this.boEnterprise = boEnterprise;
    }


    public String getBOUrl(String ip, String iDocID) {
        String token = getToken();
        String url = "http://" + ip + "/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&sViewer=html&iDocID=" + iDocID
                + "&token=" + token;
        return url;
    }

    public String getToken() {
        Map<String, Object> map = loginBO();
        if (map == null) {
            throw new RuntimeException("BO认证失败,请确认参数配置!");
        }
        return (String) map.get("token");

    }

    public Map<String, Object> loginBO() {
        // 获取BO账户,校验登陆用户是否输入正确
        ISessionMgr sessionMgr = null;
        IEnterpriseSession enterpriseSession = null;
        Map<String, Object> rmap = new HashMap<String, Object>(); // 定义返回对象
        try {
//            String boEnterprise = (String) request.getSession().getAttribute("BO_SEC_ENTERPRISE");// //连接BO类型
//            String boSystemIP = (String) request.getSession().getAttribute("BO_SYSTEMIP");连接BO系统 IP

            sessionMgr = CrystalEnterprise.getSessionMgr();
            enterpriseSession = sessionMgr.logon(username, password, boSystemIP, boEnterprise);
            ILogonTokenMgr mgr = enterpriseSession.getLogonTokenMgr();
            String token = mgr.createWCAToken("", 24 * 60, Integer.MAX_VALUE);
            rmap.put("rb", true);
            rmap.put("rmsg", "BO认证通过!");
            rmap.put("token", token);
            rmap.put("enterpriseSession", enterpriseSession);
            return rmap;
        } catch (Exception e) {
            e.printStackTrace();
            if (null != enterpriseSession) {
                enterpriseSession.logoff();
            }
            rmap.put("rb", false);
            rmap.put("rmsg", e.getMessage());
//            logger.error(username + "登录BO失败,错误信息:" + e.getMessage());
        }
//        System.out.println(rmap);
        return null;
    }


    /**
     * 同步报表
     
     * @param enterpriseSession
     * @return
     * @throws Exception
     */

    public boolean syncBOReport(IEnterpriseSession enterpriseSession) throws Exception {
        ReportEngines reportEngines = null;
        ReportEngine boReportEngine = null;
        String mes = "同步成功";
        boolean res = true;

        try {

            //bo连接验证
            reportEngines = (ReportEngines) enterpriseSession.getService("ReportEngines");
            ReportEngine wiRepEngine = (ReportEngine) reportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);

            //根据报表公共根目录名,获取cuid
            // String sql = "select si_id,SI_CUID from CI_INFOOBJECTS where si_name='Root Folder'";
            String sql = "select si_id,SI_CUID from CI_INFOOBJECTS where si_name='根文件夹'";
            //根据报表的cuid获取报表
            String infoStoreQuery = "select * from CI_INFOOBJECTS where  SI_CUID='";

            IInfoStore infoStore = (IInfoStore) enterpriseSession.getService("InfoStore");
            IInfoObjects infoObjects = infoStore.query(sql);
            String cuidStr = "";
            for (Object object : infoObjects) {
                IInfoObject myReportRoodFolder = (IInfoObject) object;
                cuidStr = myReportRoodFolder.getCUID();
                logger.info("si_cuid=" + cuidStr);
            }
            infoStoreQuery = infoStoreQuery + cuidStr + "'";
            logger.info("infoStoreQuery=" + infoStoreQuery);
            res = getReportTree(infoStore, infoStoreQuery, "myReport");
        } catch (Exception e) {
            e.printStackTrace();
            res = false;
            mes = e.getMessage();
            if (null != reportEngines) {
                reportEngines.close();
            }
            if (null != enterpriseSession) {
                enterpriseSession.logoff();
            }
        } finally {
            if (null != reportEngines) {
                reportEngines.close();
            }
            if (null != enterpriseSession) {
                enterpriseSession.logoff();
            }
        }
        return false;
    }


    public boolean getReportTree(IInfoStore infoStore, String query, String type) throws SDKException {

        boolean res = true;
        String infoStoreQuery = "select SI_ID,SI_NAME,SI_PARENTID,SI_CUID,SI_KIND,SI_UPDATE_TS,SI_CREATION_TIME from CI_INFOOBJECTS where  SI_PARENTID=";
        logger.info("0级查询sql--{}", query);
        List<BOReportNode> listOne;
        try {
            //获取根目录
            listOne = getResources(infoStore, query);
            logger.info("----(根文件夹)END--{}", listOne);
            //二级列表
            List<BOReportNode> listTwo = null;
            for (BOReportNode nodeOne : listOne) {
                //报表id
                String idOne = nodeOne.getId();
                boolean isfold = nodeOne.isFold();

                if (isfold) {
                    // 二级列表
                    String querySQLTwo = infoStoreQuery + idOne + "  order by si_name asc";
                    listTwo = getResources(infoStore, querySQLTwo);
                    logger.info("----二级列表END---\n{}", listTwo);
                    for (BOReportNode nodeTwo : listTwo) {
                        boolean isfoldTwo = nodeTwo.isFold();
                        String idTwo = nodeTwo.getId();
                        if (isfoldTwo) {
                            // 三级列表
//	           	     String querySQLThree = infoStoreQuery + idTwo  +"  "+kindSql+"  order by si_name asc";
                            String querySQLThree = infoStoreQuery + idTwo + "  order by si_name asc";
                            List<BOReportNode> listThree = getResources(infoStore, querySQLThree);
                            logger.info("----三级列表END---\n{}",listThree);
                            for (BOReportNode nodeThree : listThree) {
                                boolean isfoldThree = nodeThree.isFold();
                                String idThree = nodeThree.getId();

                                if (isfoldThree) {
                                    // 四级列表
                                    String querySQLFour = infoStoreQuery + idThree + "   order by si_name asc";
                                    List<BOReportNode> listFour = getResources(infoStore, querySQLFour);
                                    logger.info("----四级列表END{}---\n", listFour);
                                    for (BOReportNode nodeFour : listFour) {
                                        boolean isfoldFour = nodeFour.isFold();
                                        String idFour = nodeFour.getId();

                                        if (isfoldFour) {
                                            //五级列表
                                            //为五级列表设置属性,设置子节点集合
                                            String querySQLFive = infoStoreQuery + idFour + "  order by si_name asc";
                                            logger.info("五级查询sql{}", querySQLFive);
                                            List<BOReportNode> listFive = getResources(infoStore, querySQLFive);
                                            logger.info("----五级列表END---\n{}", listFive);
                                            for (BOReportNode nodeFive : listFive) {
                                                boolean isfoldFive = nodeFive.isFold();
                                                String idFive = nodeFive.getId();

                                                if (isfoldFive) {
                                                    //六级列表
                                                    //为六级列表设置属性,设置子节点集合
                                                    String querySQLSix = infoStoreQuery + idFive + "  order by si_name asc";
                                                    logger.info("六级查询sql{}", querySQLSix);
                                                    List<BOReportNode> listSix = getResources(infoStore, querySQLSix);
                                                    logger.info("----六级列表END---\n{}", listSix);
                                                    for (BOReportNode nodeSix : listSix) {
                                                        boolean isfoldSix = nodeSix.isFold();
                                                        String idSix = nodeSix.getId();
                                                        if (isfoldSix) {
                                                            //六级列表
                                                            //为六级列表设置属性,设置子节点集合
                                                            String querySQLSeven = infoStoreQuery + idSix + " order by si_name asc";
                                                            List<BOReportNode> node7 = getResources(infoStore, querySQLSeven);
                                                            logger.info("----七级列表END---\n{}", node7);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            res = false;
        }
        return res;
    }

    /**
     * @param infoStore
     * @param infoStoreQuery 执行SQL
     * @return
     * @throws Exception
     */
    public List<BOReportNode> getResources(IInfoStore infoStore, String infoStoreQuery) throws SDKException, Exception {
        List<BOReportNode> list = new ArrayList<BOReportNode>();
        try {
            IInfoObjects infoObjects = infoStore.query(infoStoreQuery);
            for (Object object : infoObjects) {
                IInfoObject myReportWithParentFolder = (IInfoObject) object;
                int id = myReportWithParentFolder.getID();
                String text = myReportWithParentFolder.getTitle();
                String kind = myReportWithParentFolder.getKind();
                String cuid = myReportWithParentFolder.getCUID();
                Date updates = myReportWithParentFolder.getUpdateTimeStamp();
                int parentID = myReportWithParentFolder.getParentID();

                BOReportNode node = new BOReportNode();
                Map<String, Object> pd = new HashMap<>();
                pd.put("cuid", cuid);
                pd.put("text", text);
                pd.put("flag", "1");
                pd.put("modifytime", updates);
                pd.put("parenetid", parentID);
                pd.put("report_id", id);
                if (kind.equals("Folder")) {
                    node.setId(id + "");
                    node.setCUID(cuid);
                    node.setText(text);
                    //boolean isKind = true;
                    node.setIsFold(true);

                    if (!text.equals("根文件夹")) {
                        //文件夹 数据库reportType值为2
                        pd.put("reporttype", "2");
                        //int rnum = (Integer)dao.update("BOReportMapper.updateReport", pd);
                        //if(rnum<=0){
                        //    dao.save("BOReportMapper.insertReport", pd);
                        //}
                        logger.info("文件夹--{}", pd);
                    }
                } else if (kind.equals("Webi") || kind.equals("AFDashboardPage")) {
                    //Webi 数据库reportType值为0
                    pd.put("reporttype", "0");
                    //int rnum = (Integer)dao.update("BOReportMapper.updateReport", pd);
                    //if(rnum<=0){
                    //    dao.save("BOReportMapper.insertReport", pd);
                    //}
                    logger.info("Webi--{}", pd);
                } else if (kind.equals("XL.XcelsiusEnterprise")) {
                    //XL.XcelsiusEnterprise显示为Dashboard 数据库reportType值为1
                    pd.put("reporttype", "1");
                    //int rnum = (Integer)dao.update("BOReportMapper.updateReport", pd);
                    //if(rnum<=0){
                    //    dao.save("BOReportMapper.insertReport", pd);
                    //}
                    logger.info("Dashboard--{}", pd);

                } else if (kind.equals("CrystalReport")) {
                    //CrystalReport显示为CR 数据库reportType值为3
                    pd.put("reporttype", "3");
                    //int rnum = (Integer)dao.update("BOReportMapper.updateReport", pd);
                    //if(rnum<=0){
                    //    dao.save("BOReportMapper.insertReport", pd);
                    //}
                    logger.info("CrystalReport--{}", pd);
                }

                //根据文件名 过滤 临时文件
                if (!"~WebIntelligence".equals(text) && node != null) {
                    list.add(node);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

}

如果仅仅是通过java登陆报表,那么需要的jar如下
bcm.jar
biplugins.jar
ceaspect.jar
cecore.jar
celib.jar
ceplugins_core.jar
ceplugins_cr.jar
cereports.jar
cesession.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
corbaidl.jar
cryptojFIPS.jar
ebus405.jar
Flash.jar
logging.jar
SL_plugins.jar
TraceLog.jar
Xcelsius.jar

如果需要登陆和同步功能,那么需要的jar如下

bcm.jar
biplugins.jar
cdz_cluster_mgmt_types_idl.jar
ceaspect.jar
cecore.jar
celib.jar
ceplugins_core.jar
ceplugins_cr.jar
cereports.jar
cesession.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
corbaidl.jar
cryptojFIPS.jar
CrystalEnterpriseRepository.jar
CrystalEnterpriseRepositoryService.jar
CrystalReportsRuntime.jar
CrystalReportsSDK.jar
CTPlugin_idl.jar
cvom.jar
dsl_desktop_plugin.jar
dsl_engine.jar
ebus405.jar
Flash.jar
GenericContainer_idl.jar
GenericContainer_proxy.jar
guice-1.0.jar
inproc_container.jar
logging.jar
org.eclipse.emf.common_2.4.0.v200902171115.jar
org.eclipse.emf.ecore.xmi_2.4.1.v200902171115.jar
org.eclipse.emf.ecore_2.4.2.v200902171115.jar
org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar
org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
rebean.common.jar
rebean.wi.adapter.jar
rebean.wi.jar
rebean.wi.model.jar
rebean.wi.server.jar
rebean.wi.server.requests.jar
rom.jar
sdk.core.jar
sdk.core.server.common.jar
sdk.core.server.corba.jar
sdk.core.server.jar
sdk.core.session.cms.jar
sdk.core.session.jar
SL_plugins.jar
TraceLog.jar
webi_proxies.jar
webreporting-jsf.jar
webreporting.jar
Xcelsius.jar


POM.xml
这里是因为,jar不在maven仓库里面,需要本地引入,打包的时候注意设置

<configuration>
                    <includeSystemScope>true</includeSystemScope>
</configuration>

jar我上传了,点击这里


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>bcm</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/bcm.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>biplugins</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/biplugins.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>ceaspect</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/ceaspect.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>cecore</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/cecore.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>celib</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/celib.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>ceplugins_core</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/ceplugins_core.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>ceplugins_cr</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/ceplugins_cr.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>cereports</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/cereports.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>cesession</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/cesession.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>com.springsource.org.aspectj.weaver-1.6.8.RELEASE</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
            </systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>corbaidl</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/corbaidl.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>cryptojFIPS</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/cryptojFIPS.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>ebus405</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/ebus405.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>Flash</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/Flash.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>logging</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/logging.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>SL_plugins</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/SL_plugins.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>TraceLog</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/TraceLog.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>Xcelsius</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/Xcelsius.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rebeancommon</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rebean.common.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rebeanadapter</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rebean.wi.adapter.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdkcore</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rebean.wi</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rebean.wi.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rebean.wi.model</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rebean.wi.model.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>guice</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/guice-1.0.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdk.core.session</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.session.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdk.core.server.common</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.server.common.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdk.core.server.corba</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.server.corba.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdk.core.server</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.server.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdk.core.session.cms</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.session.cms.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>sdk.core.session</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/sdk.core.session.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rom</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rom.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rebean.wi.server</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rebean.wi.server.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>rebean.wi.server.requests</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/rebean.wi.server.requests.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>inproc_container</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/inproc_container.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>CTPlugin_idl</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/CTPlugin_idl.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>cvom</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/cvom.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>dsl_desktop_plugin</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/dsl_desktop_plugin.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>dsl_engine</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/dsl_engine.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>org.eclipse.emf.common_2.4.0</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/org.eclipse.emf.common_2.4.0.v200902171115.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/org.eclipse.emf.ecore.xmi_2.4.1.v200902171115.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>org.eclipse.emf.ecore</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/org.eclipse.emf.ecore_2.4.2.v200902171115.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>org.eclipse.equinox.common</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>org.eclipse.equinox.registry</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>org.eclipse.osgi</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>cdz_cluster_mgmt_types_idl</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/cdz_cluster_mgmt_types_idl.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>GenericContainer_idl</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/GenericContainer_idl.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>GenericContainer_proxy</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/GenericContainer_proxy.jar</systemPath>
        </dependency>

        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>webi_proxies</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/webi_proxies.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>webreporting-jsf</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/webreporting-jsf.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>webreporting</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/webreporting.jar</systemPath>
        </dependency>

        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>CrystalEnterpriseRepository</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/CrystalEnterpriseRepository.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>CrystalEnterpriseRepositoryService</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/CrystalEnterpriseRepositoryService.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>CrystalReportsRuntime</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/CrystalReportsRuntime.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>sap.com</groupId>
            <artifactId>CrystalReportsSDK</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/CrystalReportsSDK.jar</systemPath>
        </dependency>

    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>
 类似资料: