- Создал(а) Шершнева Людмила, редактировал(а) Васильев Антон 26.01.2024
Кастомная сборка сервера применяется для создания специфичных см-агентов или модулей. Для этого создается отдельный war, который содержит типовой сервер + библиотеки, созданные специально под нужды заказчика. Проект ведется в отдельном репозитории со своими сборками.
Статус | ГОТОВО |
---|---|
Комментарий |
Результат
Структура проекта
{project name} - аббревиатура проекта в нижнем регистре
{PROJECT NAME} - аббревиатура проекта в верхнем регистре
{custom version} - версия кастомной сборки
{base version} - версия базовой сборки
{new module} - новый модуль
Пример проекта
Структура | Описание | ||||||
---|---|---|---|---|---|---|---|
{project name}-ssrv-agents | модуль, в котором размещается код кастомных агентов | ||||||
src | |||||||
main | |||||||
java | размещение классов см-агентов (Разработка СМ-агентов) | ||||||
resource | |||||||
META-INF | |||||||
version-jars.properties | {project name}-ssrv-agents={PROJECT NAME} CMJ REST Server | ||||||
spring.cmj-extentions | |||||||
applicationContext-cmj-{project name}.xml |
Указывается пакеты с бинами, подключаемые спринговым приложением (context:component-scan)
Развернуть исходный код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <context:spring-configured /> <context:annotation-config /> <context:component-scan base-package="ru.intertrust.cmj.{project name}.agents" /> </beans> | ||||||
cmBusinessBeanFactory.xml | файл копируется из ssrv-agents базового проекта | ||||||
pom.xml |
Настраивается сборка модуля
Развернуть исходный код
<?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> <artifactId>{project name}-ssrv-parent</artifactId> <groupId>ru.intertrust.cmj-{project name}</groupId> <version>{custom version}</version> </parent> <properties> <cmj.version>{base version}</cmj.version> </properties> <artifactId>{project name}-ssrv-agents</artifactId> <name>{project name}-ssrv-agents</name> <dependencies> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-af</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>javax.jms</groupId> <artifactId>javax.jms-api</artifactId> <version>2.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-cmj-adapter</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-admin-ws</artifactId> <version>${cmj.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <configuration> <aspectLibraries> <aspectLibrary> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </aspectLibrary> </aspectLibraries> </configuration> </plugin> </plugins> </build> </project> | ||||||
{project name}-ssrv-war | модуль основного приложения | ||||||
src | |||||||
main | |||||||
resource | |||||||
cmj-config | папка копируется из ssrv-war базового проекта | ||||||
META-INF | папка копируется из ssrv-war базового проекта | ||||||
cmj-version.properties | файл копируется из ssrv-war базового проекта и изменяется rest.implementation.title={project name}rest rest.implementation.version=${project.version} rest.secification.version=${project.version} | ||||||
webapp | |||||||
cmj-config | папка копируется из ssrv-war базового проекта | ||||||
WEB_INF | папка копируется из ssrv-war базового проекта | ||||||
pom.xml |
Настраивается сборка модуля
Развернуть исходный код
<?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> <artifactId>{project name}-ssrv-parent</artifactId> <groupId>ru.intertrust.cmj-{project name}</groupId> <version>{custom version}</version> </parent> <properties> <cmj.version>{base version}</cmj.version> </properties> <name>{project name}-ssrv-war</name> <artifactId>{project name}-ssrv-war</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>ru.intertrust.cmj-{project name}</groupId> <artifactId>zarneft-ssrv-agents</artifactId> <version>${project.version}</version> </dependency> <!-- CM-Sochi Server --> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-cmj-adapter</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>model</artifactId> <version>${cm-sochi.core.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>nbr-base</artifactId> <version>${cm-sochi.core.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-storage-sochi</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-plugins</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-sochi-fellow</artifactId> <version>${cmj.version}</version> <exclusions> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <!-- CM-Sochi- Admin GUI --> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-admin-gui</artifactId> <version>${cmj.version}</version> <exclusions> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <!-- Sochi Agents --> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-agents</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-web-fragments</artifactId> <version>${cmj.version}</version> </dependency> <!-- Sochi-Core --> <dependency> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>bootstrap</artifactId> </dependency> <!-- CMJ-Server --> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-af</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-apre-dao</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-cases</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-cases-rules</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-cases-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-config</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-disco</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-dao</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-storage-domino</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-dp</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-dp-dao</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-dp-operations</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-dp-ws</artifactId> <version>${cmj.version}</version> <exclusions> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-forms</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-idocs_storage-connectors-cmj</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-idocs_storage-storage-domino</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-idocs_storage-task</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.idocs</groupId> <artifactId>srv-idocs-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-purchases-storage-domino</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-idocs-ws-cmj</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-purchases-meetings-storage-domino</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.idocs</groupId> <artifactId>idocs-module</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-e2e-links</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-locker</artifactId> <version>${cmj.version}</version> <exclusions> <exclusion> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </exclusion> <exclusion> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-locker-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-meetings</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-meetings-dao</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-meetings-storage-domino</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-meetings-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-meetings-online</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-orm</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-pkd</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-iss</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-iss-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-iss-dao</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-document-iss-storage-domino</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-quartz</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-rendition</artifactId> <version>${cmj.version}</version> <exclusions> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-report</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-reporter-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-wf-bpmn</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-wf-core</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-training-data-export</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-wf-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-ws-base</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-pkd-ws</artifactId> <version>${cmj.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-monitoring</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-versionable</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-idocs_storage-migration-cmj</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-idocs-operator-cmj</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.openoffice</groupId> <artifactId>juh</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-tunable-object</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-tunable-object-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-admin</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-admin-storage</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-admin-ws</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-spd</artifactId> <version>${cmj.version}</version> </dependency> <dependency> <groupId>ru.intertrust.cmj</groupId> <artifactId>srv-archives</artifactId> <version>${cmj.version}</version> </dependency> <!-- Java EE --> <dependency> <!-- Required so that we have a real Java EE 6 implementation for testing --> <groupId>org.jboss.spec</groupId> <artifactId>jboss-javaee-8.0</artifactId> <type>pom</type> <scope>provided</scope> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.healthmarketscience.rmiio</groupId> <artifactId>rmiio</artifactId> </dependency> <dependency> <groupId>org.simpleframework</groupId> <artifactId>simple-xml</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <attachClasses>true</attachClasses> </configuration> </plugin> </plugins> </build> </project> | ||||||
{new module} | Новый модуль | ||||||
pom.xml |
Настраивается сборка проекта
Развернуть исходный код
<?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> <name>Parent POM for CM-{PROJECT NAME} Server</name> <groupId>ru.intertrust.cmj-{project name}</groupId> <artifactId>{project name}-ssrv-parent</artifactId> <!-- Переопределяет св-во project.version и применяется к зависимостям CMJ, использующих ${project.version} --> <version>{custom version}</version> <packaging>pom</packaging> <description>Корневой POM для сборки "CM-{PROJECT NAME} Server"</description> <parent> <groupId>ru.intertrust.cm-sochi</groupId> <artifactId>ssrv-parent</artifactId> <version>{base version}</version> </parent> <properties> <cmj.version>${project.parent.version}</cmj.version> </properties> <modules> <module>{new module}</module> <module>{project name}-ssrv-agents</module> <module>{project name}-ssrv-war</module> </modules> <organization> <name>InterTrust</name> <url>http://www.intertrust.ru</url> </organization> <licenses> <license> <name>Proprietary software license</name> <distribution>repo</distribution> <comments>Copyright (c) 2013 InterTrust. All rights reserved.</comments> </license> </licenses> <mailingLists> <mailingList> <name>Техническая поддержка</name> <post>techsupport@intertrust.ru</post> </mailingList> </mailingLists> <issueManagement> <system>jira</system> <url>http://jira.inttrust.ru/browse/cmsix</url> </issueManagement> <repositories> <!-- InterTrust's repositories --> <repository> <id>intertrust.repo</id> <name>InterTrust maven repository</name> <url>http://sup.inttrust.ru:8081/nexus/content/groups/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>intertrust.releases</id> <url>http://sup.inttrust.ru:8081/nexus/content/groups/public/</url> </pluginRepository> </pluginRepositories> <distributionManagement> <repository> <id>intertrust.releases</id> <url>http://sup.inttrust.ru:8081/nexus/content/repositories/releases</url> <uniqueVersion>false</uniqueVersion> </repository> <snapshotRepository> <id>intertrust.snapshots</id> <url>http://sup.inttrust.ru:8081/nexus/content/repositories/snapshots</url> <uniqueVersion>false</uniqueVersion> </snapshotRepository> </distributionManagement> <scm> <url>https://stash.inttrust.ru:8443/projects/CMJCUS/repos/{project name}-cmj/browse</url> <connection>scm:git:ssh://git@stash.inttrust.ru:7999/cmjcus/{project name}-cmj.git</connection> <developerConnection>scm:git:ssh://git@stash.inttrust.ru:7999/cmjcus/{project name}-cmj.git</developerConnection> <tag>HEAD</tag> </scm> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3.2</version> <configuration> <archive> <manifest> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> <manifestEntries> <Implementation-Title>${project.name}</Implementation-Title> <Implementation-Version>${project.version}</Implementation-Version> <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id> <Implementation-Vendor>${project.organization.name}</Implementation-Vendor> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.5.1</version> <configuration> <releaseProfiles>release</releaseProfiles> <preparationGoals>clean install</preparationGoals> <goals>deploy</goals> <autoVersionSubmodules>true</autoVersionSubmodules> <pushChanges>false</pushChanges> <autoVersionSubmodules>true</autoVersionSubmodules> <localCheckout>true</localCheckout> <tagNameFormat>{project name}.cmj.@{project.version}</tagNameFormat> </configuration> </plugin> </plugins> </build> </project> | ||||||
README.md | Описание проекта |